Copyright: © 2001-2003 Ing. Alfred Bodor


Motto

"Je třeba, abychom národ seznamovali s dějinami předešlých dob, s velkými činy svých předků. Ať slyší s úžasem, že naši předkové s velkými úspěchy pěstovali vědy, že u nich všeobecná moudrost byla domovem, že u nich vzešlo světlo osvěty dříve než jinde a odtud se rozlévalo po celé Evropě. Nedostatek světla, nevědomost a blud jsou hlavními příčinami lidského zla."

Bernard Bolzano (1781-1848)


Co je EMcalc

Jádro programu EMcalc staví na principu moderních kapesních kalkulátorů s lexikální analýzou výrazů, program však obsahuje řadu podpůrných nástrojů pro řešení složitějších matematických úloh. Integrace programu EMcalc do Vašich aplikací Vám může přinést řadu výhod, zejména pokud občas provádíte výpočty nebo se zabýváte graficko numerickou analýzou dat.

Při pořízení Vašeho operačního systému (předpokládá se 32bitový operační systém Windows 95/98/NT/ME/2K/XP) jste jako příslušenství obdrželi program Kalkulačka přímo od výrobce operačního systému (obvykle ji najdete v nabídce Start/Programy/Příslušenství v operačním systému MS Windows). K čemu tedy může být dobrá další kalkulačka?

Program EMcalc má široké spektrum použití, je to nástoj, který může dobře sloužit jak žákům základních škol, tak i studentům středních a vysokých škol, pracovníkům v oblasti výzkumu, ale zejména pak technickým pracovníkům v každodenní praxi.

EMcalc je programovatelná grafická kalkulačka s těmito vlastnostmi

•	lexikální analýza a vyhodnocení matematických výrazů zapsaných jako řádek textu,

•	sekvenční nebo příkazovým interpretem řízené řešení komplexních matematických úloh,

•	generování datových řad iterací jedné nebo dvou proměnných, iterací parametru nebo metodou částečných součtů členů nekonečné řady,

•	řešení soustavy lineárních rovnic s komplexními koeficienty Gaussovou eliminační metodou (verze PROFI),

•	rychlostně optimalizované řešení variantních výpočtů soustav lineárních algebraických rovnic využívající algoritmus LU rozkladu matice soustavy (verze PROFI),

•	maticový počet (algebraické operace s maticemi včetně inverze matice, determinantu, adjungované matice a hodnosti matice, transformace prvků analytickou funkcí - verze PROFI),

•	podpora výpočtů el. sítí metodou uzlových napětí, výpočet náhradního dvoubranu libovolně zauzlené el. sítě, výpočet frekvenční charakteristiky uzlové impedance sítě (verze PROFI),

•	osm předdefinovaných a libovolný počet uživatelsky definovaných proměnných,

•	automatická nebo explicitní registrace proměnných,

•	podpora vektorů proměnných a operací nad množinami jejich prvků,

•	podpora číselné soustavy binární, oktalové, dekadické a hexadecimální,

•	podpora inženýrské postfixové notace zápisu čísel, mixování číselných notací,

•	podpora komplexních čísel, proměnných, operátorů a funkcí komplexní proměnné,

•	funkce algebraické, goniometrické, cyklometrické, hyperbolické, hyperbolometrické, logaritmické, exponenciální a konverzní - všechny pro obor čísel reálných i komplexních,

•	priorita algebraických operátorů, padesát úrovní závorek,

•	vkládání fyzikálních konstant výběrem ze seznamu, podpora uživatelských konstant,

•	převody jednotek fyzikálních veličin,

•	ukládání dat na disk - vzorce, proměnné, řešené úlohy, historie výpočtů, uživatelské rozhraní atd.,

•	strukturovaná knihovna výrazů a řešených úloh v jazyce BASIC s možností importu a exportu dílčích modulů knihovny do distribuovaných balíčků,

•	editor výrazů s řádkově orientovaným vyhodnocováním výrazů klávesou Enter,

•	programování úloh v jazyce BASIC, ladící prostředky pro trasování, vkládání bodů přerušení a sledování proměnných,

•	statistická a regresní analýza,

•	náhledové a detailní grafy datových řad, tvorba grafických sestav, graficko numerická analýza dat,

•	dvě verze uživatelského rozhraní - standardní okno a miniokno šetřící užitnou plochu obrazovky,

•	displej s volitelným formátem a přesností zobrazených výsledků výpočtu,

•	bohatá podpora metody drag & drop a místních nabídek usnadňující ovládání programu,

•	vysoká rychlost a přesnost prováděných výpočtů,

•	registrace prováděných výpočtů se zobrazením historie a záznamem na disk,

•	speciální webové stránky věnované EMcalcu: http://www.emdat.cz/emcalc,

•	rozsáhlá dokumentace ve formě elektornické nápovědy,

•	kvalitní tištěná uživatelská příručka v rozsahu cca 160 stran.


Licenční podmínky

Program EMcalc je chráněn jako autorské dílo ve smyslu Autorského zákona. Autorským právem disponuje Ing. Alfred Bodor, emailová adresa: bodor@emdat.cz.

EMcalc můžete získat v demoverzi jako freeware anebo jako plnou registrovanou verzi za registrační poplatek. Licence k užití freewarové verze je poskytována zdarma a v neomezeném množství, avšak program má v této verzi omezení některých funkcí. Plná verze poskytuje možnost testování kompletní sady zabudovaných funkcí zdarma po dobu třiceti dnů. Po uplynutí této lhůty se pokročilé funkce programu automaticky zablokují, pokud není provedena registrace uživatele.

Používáním aplikace EMcalc souhlasíte s následujícím ujednáním

Uživatel je povinen dodržovat příslušná autorská práva tak, jak jsou specifikována v Autorském zákonu v platném znění a jak je to běžné v našem i mezinárodním právu.

Dodavatel ani autor programu neručí za škody nebo za ztrátu zisku vzniklou uživateli nesprávnou instalací programu, nesprávným užitím programu nebo chybnou funkcí programu. Dodavatel ani autor neručí ani za nemožnost program provozovat z jakýchkoliv příčin, ani za další škody ať už přímé nebo nepřímé či následné, způsobené chybou uživatele, závadou hardware nebo nekorektním chováním programu na specifickém hardware. V žádném případě odpovědnost dodavatele ani autora nepřesahuje částku zaplacenou za softwarový produkt.

Podmínkou vzniku nároku na udělení licence k používání plné verze programu s neredukovanou sadou funkcí je řádná registrace uživatele a úhrada kupní ceny programu.

Za porušení licenčních podmínek ve smyslu zákona se považuje především:

•	používání jedné licence produktu současně na více počítačích,

•	zřízení přístupového práva k programu většímu počtu klientů sítě než odpovídá počtu licencí,

•	pořizování kopií programu s výjimkou jedné záložní,

•	převedení získaných práv na jinou osobu,

•	půjčování nebo pronajímání programu,

•	různé úpravy produktu nebo jeho zpětná analýza,

•	zahrnutí produktu do jiného a šíření takto vzniklého produktu.

Cena legální licence není příliš vysoká a řádnou registrací produktu napomáháte dalšímu vývoji programu. Jedině tak lze ceny udržet v rozumných mezích k větší spokojenosti všech zákazníků.


Rozdíly programových verzí

Freewarová verze programu EMcalc

Freewarová verze programu EMcalc má proti plné registrované verzi některá omezení, která se projevují zúženým rozsahem nebo nedostupností některých režimů případně speciálních funkcí programu:

•	zablokovaná funkce ukládání a otevírání rozpracovaných úloh,

•	zablokovaná možnost práce s knihovnou výrazů,

•	zablokovaná možnost práce s vektory proměnných,

•	zablokovaná možnost programování úloh,

•	zablokovaná číselná soustava binární, oktalová a hexadecimální,

•	zablokovaná postfixová inženýrská notace zápisu a zobrazení dekadických čísel,

•	zablokovan obor komplexních čísel,

•	pouze tři úrovně zanoření závorek,

•	ukládání max. 100 prvků datové řady,

•	nedostupnost funkcí pro export a import externích dat do detailního grafu datové řady,

•	nedostupnost funkcí pro export a import externích dat do statistické analýzy,

•	omezená sada funkcí pro převody jednotek,

•	omezená množina matematických funkcí (nedostupné jsou všechny jednoargumentové funkce, tedy i funkce goniometrické, které byly v dřívějších verzích dostupné i v omezeném režimu).

Pokud na taková omezení narazíte, bude Vás program informovat hlášením, jak ukazuje následující obrázek.

Další obrázek pak ukazuje vzhled tabla funkčních tlačítek, z něhož je zřejmé, které funkce nejsou dostupné ve freewarové verzi z tohoto ovládacího panelu.

Profesionální verze programu EMcalc

Profesionální verze programu EMcalc má proti standardní verzi navíc implementován matematický aparát pro podporu numerické analýzy v oblasti lineární algebry. Tato nadstavba je vhodná zejména v oblasti matematického modelování, např. výpočty poměrů ve střídavých elektrických soustavách, rozložení elektromagnetických polí, proudění v kapalinách, pevnostní výpočty materiálů, prutové soustavy nosníků a další.

Podrobný popis implementovaných funkcí naleznete v kapitole Novinky programu EMcalc 2.0 a zejména pak v kapitolách Soustava lineárních rovnic a Maticový počet.

Poznámka:	Profesionální verze programu EMcalc není k dispozici ke stažení na webových stránkách, je dodávána pouze na základě objednávky formou poštovní zásilky nebo při osobním odběru.


Novinky programu EMcalc ve verzi 2.0

Aktuálnost Vaší verze programu EMcalc si můžete ověřit v okně O programu a na Internetu, kde jsou zveřejňovány opravy a nejnovější verze - stránka http://www.emdat.cz/emcalc/novinky.html

EMcalc verze 2.0 Standard obsahuje oproti verzi 1.1 tyto významné změny:

•	Zavedení oboru komplexních čísel:

-	zápis komplexních čísel ve složkovém, exponenciálním a goniometrickém tvaru,

-	zobrazení komplexních čísel ve složkovém nebo exponenciálním tvaru,

-	podpora komplexních proměnných,

-	podpora komplexní aritmetiky,

-	podpora funkcí komplexní proměnné,

-	generování datových řad funkcí komplexní proměnné,

-	kartézské grafy funkcí komplexní proměnné,

-	grafy funkcí komplexní proměnné v Gaussově rovině,

-	možnost nastavení barvy a písma displeje zvlášť pro obor reálných a komplexních čísel.

•	Zavedení vektorů proměnných:

-	obsluha proměnných ve výrazech jako skaláry nebo vektory,

-	import a export vektorů proměnných ze (do) souboru nebo statistiky,

-	grafické zobrazení vektorů proměnných.

•	Nové konstanty, číselné notace a operace:

-	podpora konstanty e=2,718281828459045 (Eulerovo číslo, základ přirozených logaritmů),

-	podpora počítání s procenty pro operátory násobení a dělení pomocí postfixu %,

-	mixování postfixu inženýrské notace se symbolem imaginární jednotky komplexních čísel.

•	Řešení soustavy lineárních rovnic:

-	řešení soustavy lineárních rovnic s reálnými nebo komplexními koeficienty Gaussovou eliminační metodou matice čtvercové regulární symetrické i nesymetrické.

•	Regresní analýza

-	výpočet aproximační funkce pro optimální prokládání soustavy bodů s implementací regrese

- lineární,

- logaritmická,

- exponenciální,

- mocninná.

•	Rozšířené možnosti detailní grafiky:

-	plovoucí panel nástrojů,

-	horizontální a vertikální posuvník pro změnu polohy grafu,

-	posuvný jezdec pro výběr grafu z množiny zobrazených grafů,

-	posuvný jezdec pro polohování nitkového kříže při snímání souřadnic bodů grafu,

-	ovládání polohy a měřítka zobrazení grafu klávesovými zkratkami,

-	rozbalovací seznamy pro volbu indexu grafu a procentní míry zvětšení/zmenšení grafu,

-	směrové indikátory pro ovládání změny polohy a měřítka zobrazení grafu,

-	stavový řádek s výpisem souřadnic nitkového kříže a snímaných souřadnic bodů grafu,

-	měření diference souřadnic bodů grafu, kopírování údajů stavového řádku do schránky,

-	možnost přidávání a odebírání grafu datové řady z grafiky po jednom,

-	uživatelské nastavení 16 barev spojnic bodů spojnicového grafu.

•	Rozšířené možnosti knihovny výrazů:

-	import a export modulů knihovny výrazů z/do distribuovaných balíčků,

-	vyhledání textového řetězce dle zadaných kritérií,

-	vertikální rozdělovač okna mezi panely stromu kategorií a datovou mřížkou,

-	skupina tlačítek pro řízení příkazového interpretu v normálním a ladícím režimu,

-	klávesové zkratky urychlující práci s knihovnou výrazů,

•	Programování úloh v jazyce BASIC

-	řízení algoritmu řešení složitých a strukturálně náročných výpočetních úloh,

-	ladící prostředky pro trasování, krokování, vkládání bodů přerušení a jejich podmínek,

-	rozsáhlá sada instrukcí interpretu BASIC podporující strukturovaný a přehledný zápis algoritmu:

-	relační operátory pro vytváření podmínek větvení,

-	podmíněné větvení toku řešení úloh s podporou bloků a možností vícenásobného zanoření,

-	iterační cykly s daným počtem iterací, s podmínkou na začátku nebo na konci cyklu,

-	příkazy pro přerušení iteračního cyklu či pokračování další iterací dle zadaných podmínek,

-	podmíněné a nepodmíněné skoky na pozici určenou návěštím,

-	podprogramy pracující s globálními proměnnými,

-	uživatelské funkce s předáváním parametrů,

-	prostředky pro komfortní uživatelský vstup dat a formátovaný výstup do protokolu,

-	prostředky pro programově řízené vytváření sestav grafických výstupů výpočtů,

-	řízení oken, jejich polohy, velikosti a stavu,

-	prostředky pro simulaci stisku kláves a generování klávesových zkratek,

-	časování prodlev mezi prováděním instrukcí příkazového interpretu.

•	Ukládání nastavení stavových přepínačů:

Do souboru fx a do knihovny výrazů se pro každou úlohu ukládá nastavení

-	úhlových jednotek:	deg-rad-grad,

-	číselné soustavy:	dec-hex-bin-oct,

-	číselného oboru:	real-cplx

-	symbol imaginární jednotky:	i nebo j

•	Ukládání více stavových informací do souboru emcalc.ini:

-	velikost, poloha a stav nemodálních oken,

-	nastavení rozdělení oken na jednotlivé části,

-	nastavení vzhledu displeje a barvy písma stavových přepínačů.

•	Nová kontextová menu:

-	polí proměnných,

-	minigrafu,

-	statistické analýzy,

-	seznamu proměnných,

-	knihovny výrazů,

-	detailního grafu a další.

•	Plovoucí vstupní pole Výraz:

-	vyjímatelné vstupní pole Výraz, které lze rozšířit na potřebnou velikost.

•	Plovoucí nápověda polí proměnných:

-	zobrazuje název proměnné, nevejde-li se do vymezeného prostoru,

-	u vektoru zobrazí počet prvků a hodnoty krajních prvků.

•	Obecná vylepšení:

-	zlepšena robustnost a stabilita chodu programu,

-	optimalizovaný kód programu a správa paměti šetřící systémové zdroje,

-	zrychlen start programu, usnadněna aktivace aplikačního okna,

-	zlepšena ergonomie ovládání, možnost více uživatelských nastavení.

•	Poskytnutí nové 30 denní zkušební lhůty:

-	uživatelům dřívějších verzí programu EMcalc, kterým vypršela zkušební lhůta a kteří si program nezaregistrovali, poskytuje EMcalc verze 2.0 novou 30denní zkušební lhůtu, aby mohli testovat všechny nové funkce a vylepšení programu.

EMcalc verze 2.0 Professional

Profesionální verze programu EMcalc obsahuje proti standardní verzi navíc matematický aparát pro podporu numerické analýzy v oblasti lineární algebry. Tato nadstavba je vhodná zejména v oblasti matematického modelování (např. výpočty poměrů ve střídavých elektrických soustavách, rozložení elektromagnetických polí, proudění v kapalinách, pevnostní výpočty materiálů, prutové soustavy nosníků a další).

Implementovány jsou tyto funkce:

•	řešení soustavy lineárních algebraických rovnic s komplexními koeficienty,

•	variantní výpočty soustav lineárních algebraických rovnic využívající LU rozklad matice soustavy,

•	maticový počet (algebraické operace s maticemi včetně inverze matice a umocnění matice),

•	determinant a subdeterminant, algebraický doplněk, adjungovaná matice, hodnost matice,

•	transformace hodnot prvků matice analytickou funkcí,

•	výpočet el. sítí - transformace impedanční větvové matice na admitanční uzlovou matici,

•	výpočet parametrů náhradního dvoubranu pasivního subsystému libovolně zauzlené el. sítě,

•	výpočet parametrů ustáleného bezporuchového chodu v trojfázových střídavých soustavách,

•	výpočet poměrů při zkratech v trojfázových střídavých soustavách,

•	optimalizační algoritmy řídkých sítí - vhodné pro výuku matemat. modelování (připravuje se),

•	statistické a grafické vyhodnocení numerické analýzy (připravuje se),

Poznámka:	Profesionální verze programu EMcalc není k dispozici ke stažení na webových stránkách, je dodávána pouze na základě objednávky formou poštovní zásilky nebo při osobním odběru.


Novinky programu EMcalc ve verzi 1.1

Upozornění

Tato strana nápovědy obsahuje změny verze 1.1 oproti veri 1.0 a je v nápovědě ponechána z důvodu usnadnění orientace v dřívějších verzích programu EMcalc.

Aktuálnost Vaší verze programu EMcalc si můžete ověřit v okně O programu a na Internetu, kde jsou zveřejňovány opravy a nejnovější verze - stránka http://www.emdat.cz/emcalc

EMcalc verze 1.1 s číslem sestavení 75 obsahoval oproti verzi 1.0 tyto významné změny:

•	Implementace jazykových lokalizačních souborů .lng, pomocí nichž je možné EMcalc provozovat prakticky v libovolném jazyce. Podporována je zatím čeština, angličtina a němčina. Soubory jazyků mají anglický název jazyka a příponu .lng (CZECH.LNG, ENGLISH.LNG, GERMAN.LNG). Jazyk je možné měnit i za běhu programu v okně Nastavení/Jazyk.

•	Implementace zobrazování tipů dne - při každém spuštění EMcalcu je možné nechat zobrazovat krátké tipy nápovědy, které napomáhají naučit se postupně EMcalc efektivně ovládat.

•	Vytvoření sekce Nastavení, kde je možné měnit některá nastavení, jako je např. změna jazyka. Dostupné jsou karty Proměnné/Funkce/Historie/Jazyk.

•	Ukládání historie výpočtu do souboru .log (karta Nastavení/Historie) umožňuje sledovat všechny výpočty prováděné EMcalcem a archivovat je pro pozdější analýzu. S tímto souborem se pracuje stejně jako s každým jiným textovým souborem, tj. prohlížet jej můžete např. v Notepadu.


Instalace programu

Doporučení

Pro bezchybný běh programu doporučujeme použít počítač standardu PC s následujícími parametry (minimálními parametry):

•	IBM PC kompatibilní

•	operační systém Windows 95/98/NT/ME/2000/XP

•	procesor Pentium II 266 MHz (Pentium 90)

•	64 MB operační paměť (16 MB)

•	10 MB volného místa na disku (5 MB)

•	grafika s rozlišením 1024x768 bodů True Color (640x480, 256 barev)

•	CD mechanika

Instalace

Po vložení instalačního média (CD nebo disketa) do mechaniky spusťte instalační program setup.exe. Řiďte se pokyny instalačního programu pro bezchybnou instalaci. Pokud program budete denně používat, doporučujeme vytvořit jeho zástupce (ikonu) na ploše nebo v systémové liště Windows. Po nainstalování, prosím, co nejdříve vyplňte a odešlete registrační kartu, aby jste mohli využívat všech výhod registrovaných uživatelů, zejména technické podpory a slev při nákupu dalších verzí.


Registrace uživatele

Zkušební verze po dobu 30 dnů

Pokud není uživatel zaregistrován, zobrazuje se po spuštění programu okno s informacemi o licenčních podmínkách a počtem dnů do vypršení 30denní zkušební lhůty, během níž jsou dostupné veškeré zabudované funkce programu.

Po vypršení 30denní zkušební lhůty přejde program do freewarové verze s omezením některých funkcí, pokud nebyla provedena registrace uživatele.

Objednávka programu

Objednávkový formulář je dostupný z nabídky menu Nápověda/Objednávka online. Cena legální licence není příliš vysoká a řádná registrace produktu napomáhá dalšímu vývoji programu. Jedině lze udržet ceny v rozumných mezích k větší spokojenosti všech zákazníků. Ceník včetně formuláře pro objednávku naleznete na http://www.emdat.cz/emcalc/koupit.html

Registrace uživatele

Registrace uživatele se provádí na základě sériového čísla a jedinečného autentizačního kódu, který poskytuje distributor při zakoupení programu.

Registrační formulář je dostupný z nabídky menu Nápověda/Registrace

Po vyplnění údajů ve vstupních polích formuláře provede program EMcalc registraci identifikačních údajů registrovaného uživatele a zaregistruje sériové číslo a autentizační kód.

Při kontaktování technické podpory support@emdat.cz, která je registrovaným uživatelům poskytována zdarma, mějte prosím tyto údaje připraveny.


Používání systému nápovědy

Práce s nápovědou programu EMcalc

Nápověda programu je systém informací, který má uživateli zodpovědět všechny potřebné dotazy, které mohou při práci s programem vzniknout. Přestože je program navržen tak, aby jeho ovládání bylo co nejjednodušší a všechny popisy byly stručné a výstižné, nelze se vyhnout určitým komplikovanějším a složitějším konstrukcím, které zejména začínajícím uživatelům, mohou činit jisté potíže. V takovém případě by řešení měla přinést právě nápověda. Elektronická verze nápovědy je dostupná vždy, pokud je program spuštěn a je možné ji vyvolat z menu Nápověda > Obsah a index nebo ještě jednodušeji pomocí funkční klávesy F1. Toto vyvolá hlavní stránku nápovědy, popř. obsah nápovědy. Pokud se nachází na některém formuláři tlačítko Nápověda, jeho stiskem vyvoláte příslušnou kapitolu nápovědy související s daným formulářem.

Nápověda využívá zvyklostí nápovědy Windows. Základní okno je rozděleno na tři karty:

•	Obsah

•	Rejstřík

•	Najít.

Obsah nápovědy EMcalc

V obsahu jsou seřazeny témata dle kapitol. Dvojitým kliknutím na ikonu zavřené knížky [image]  se kapitola otevře a objeví se seznam témat nebo další podkapitoly. Otevřenou kapitolu indikuje ikona otevřené knihy [image] a vlastní téma (kapitolu) nápovědy pak ikona [image]. Zavřít kapitolu můžete opět dvojitým kliknutím na ikonu otevřené knihy. Je možné i dvojitě kliknout myší na název kapitoly. Vlastní téma nápovědy vyvoláte dvojitým kliknutím na ikonu [image] nebo přímo na název tématu.

Rejstřík nápovědy EMcalc

Rejstřík obsahuje seznam klíčových slov nápovědy. Naleznete zde všechny potřebné pojmy, které hledáte. Zadejte klíčové slovo nebo jeho začátek vstupního pole. V seznamu rejstříku se zobrazí vyhledaná klíčová slova. Výběrem položky ze seznamu a stiskem tlačítka zobrazit se nápověda zobrazí na požadovaném místě.

Nalezení klíčového slova

Pokud nenaleznete hledané slovo v rejstříku, můžete použít poslední možnost a to kartu Najít.

Pokud je tato karta aktivována poprvé, systém Windows nejprve vytvoří seznam klíčových slov a poté zobrazí vyhledávací okno. Napište slovo které hledáte, vyberte zúžený okruh klíčových slov a nakonec vyberte téma pro zobrazení. Použijte tlačítko Zobrazit a nebo dvakrát klikněte na vybrané téma v posledním seznamu č. 3.

Více se o systému nápovědy dozvíte z nápovědy operačního systému Windows.

Soubor nápovědy

Na rozdíl od většiny komerčních programů kategorie jako je EMcalc, umožňuje program EMcalc úplnou lokalizaci uživatelského rozhraní, včetně podpory národních verzí systému elektronické nápovědy. Jelikož lze jazyk vybrat za chodu programu, je název souboru nápovědy, který má být systémem Windows zobrazen, závislý na jazyku dle nastavení na kartě Jazyk v dialogovém oknu Nastavení. Tak např. pro německý jazyk se soubor nápovědy nazývá emcalc_german.hlp (názvy souboru nápovědy jsou odvozeny od anglického znění názvu jazyka). Pokud není soubor s tímto názvem nalezen, pokusí se program EMcalc nalézt soubor emcalc.hlp.

Poznámka:	Ve stejném smyslu musí být při lokalizaci pojmenován i soubor .cnt - obsah nápovědy např. emcalc_german.cnt.

Tipy dne

Mezi elektronickou formu nápovědy lze zařadit i speciální zásobník návodů, tzv. tipů dne. Jedná se o databázi krátkých informací, které se mohou zobrazovat vždy po spuštění programu a nebo ručně z menu Nápověda. Malé okno obsahuje krátkou zprávu s tipem.

Tlačítko Další tip vybere další informaci ze zásobníku. Zaškrtnutím volby Zobrazovat tipy při spuštění se budou tyto informace zobrazovat vždy po spuštění programu EMcalc. Pokud budete sledovat tipy, naučíte se postupně s aplikací pracovat efektivněji a rychleji, neboť tipy vám poskytnou vždy nové informace každý den.

Poznámka:	Jelikož jsou podporovány národní verze tipů, je třeba při lokalizaci programu EMcalc pojmenovat soubor tipů dle stejného klíče, jakým se vytvářejí názvy souboru nápovědy. Tak má např. německá verze souboru tipů název tips_german.txt

Nápověda ke zprávám programu EMcalc

Program EMcalc podporuje čtyři standardní typy zpráv, které se navzájem liší textem titulkového pruhu a ikonou. Jsou to

•	Varování

•	Chyba

•	Informace

•	Potvrzení

U všech chybových zpráv se zobrazuje tlačítko Nápověda, které vyvolá kontextovou nápovědu související se vzniklou chybou. Kontextovou nápovědu lze vyvolat také klávesou F1.

Poznámka:	Kontextová nápověda je dostupná nejen u chybových zpráv, lze ji většinou vyvolat i u všech ostatních typů zpráv.

Nápověda ke klíčovým slovům BASIC

Pro snadné a rychlé nalezení nápovědy ke klíčovému slovu při psaní příkazovým interpretem řízených  úloh (programů matematických úloh) stačí v knihovně výrazů umístit textový kurzor na klíčové slovo a stisknout klávesovou zkratku Alt+F1.

Témata nápovědy ke klíčovým slovům BASIC obsahují příklady použití, které lze zkopírovat prostřednictvím schránky Windows do editoru úloh.

Poznámka:	Příklady použití klíčových slov příkazového interpretu BASIC jsou dostupné v rámci knihovny výrazů, která je distribuována jako součást instalace programu EMcalc.


Nastavení programu

Pro nastavení programu složí dialogové okno Nastavení přístupné z nabídky menu Soubor/Nastavení, obsahující 6 karet (záložek):

Karta Proměnné

Ve výrazech >

•	Automaticky registrovat proměnné

zaškrtnutím této volby bude EMcalc automaticky registrovat proměnné pokud je napíšete do pole výraz. Není tedy nutné je předem registrovat pomocí příkazu defvar nazev_promenne. Více informací získáte v samostatné kapitole věnované proměnným.

•	Používat číslo místo proměnné Ans

zaškrtnutím volby bude do výrazu vkládána hodnota posledního výpočtu místo symbolického názvu Ans (answer - poslední vypočítaný výsledek). Toto nastavení se projevuje pokud za posledním výpočtem stisknete některý z operátorů + - * /.

Proměnné obsloužit jako >

•	Skaláry

Touto volbou sdělujete EMcalcu, že si přejete pracovat s jednoduchými nestrukturovanými proměnnými - skaláry, které mohou v dané chvíli obsahovat jednu číselnou hodnotu (reálné nebo komplexní číslo).

•	Vektory

Vybrání přepínacího tlačítka značí, že proměnné na levé straně rovnice se v případě výpočtu datových řad stanou strukturovanými proměnnými - vektory (jednorozměrnými poli) obsahujícími v dané chvíli posloupnost číselných hodnot (reálných případně komplexních čísel). Aritmetické operátory a funkce jsou pak aplikovány na každý její prvek. V seznamu proměnných jsou vektory proměnných zvýrazněny tučným písmem.

Imaginární jednotka komplexních čísel >

•	Symbol

Rozbalovací seznam obsahuje dvě hodnoty "I" a "j", ze kterých můžete vybírat. Symbol "j" je použit především z důvodu odlišení imaginární jednotky "j" od symbolu "i" používaného pro označení elektrického proudu v elektrotechnice.

Poznámka:	Matematické úlohy importované do knihovny výrazů automaticky zaznamenávají aktuální stav tohoto nastavení pomocí klausule mode. Prosím, neodstraňujte řádek s nastavením stavových přepínačů, předejdete tím pozdějším možným kolizím mezi identifikátory proměnných a symbolem imaginární jednotky.

Karta Funkce

Tlačítka tabla Fn >

•	Vkládat Fn do výrazu

Volba aktivuje režim insert tabla funkčních tlačítek, kdy je po klepnutí na funkční tlačítko vložen název funkce včetně závorkového páru do výrazu v místě kurzoru.

•	Výraz argumentem Fn

Volba aktivuje režim eval (evaluation) tabla funkčních tlačítek, kdy je po klepnutí na funkční tlačítko text ve vstupním poli Výraz vložen jako argument vybrané matematické funkce.

DPH >

•	Procentní sazba DPH

Do vstupního pole se zadává procentní sazba daně z přidané hodnoty DPH.

•	Zaokrouhlení ceny s DPH

Do vstupního pole se zadává zaokrouhlování - hodnota, na kterou má být hodnota proměnné Celkem (celková cena včetně DPH) zaokrouhlena (od 1.11.2003 to je 0,50 Kč). Při výpočtu jsou zadané nebo vypočtené hodnoty ve vstupních polích BezDPH a DPH zaokrouhleny na desetihaléře.

Statistika >

•	Enter vkládá data do datové řady statistiky

Zaškrtnutí tohoto pole budou výsledky při každém výpočtu po stisku klávesy nebo tlačítka Enter průběžně vkládány do datové řady statistické analýzy.

Mezerník >

•	Standardní funkce

Volba aktivuje standardní funkci mezerníku pro vkládání mezer.

•	Mezerník vkládá závorkový pár

Volba aktivuje speciální funkci mezerníku pro vkládání závorkového páru pro usnadnění zadávání argumentů funkcí.

Karta Historie

Okno >

•	Adjustovat šířku okna

Volba zajišťuje automatické přizpůsobení šířky okna Historie výpočtů tak, aby byl text výsledku výpočtu vkládaný do okna viditelně zobrazen.

Soubor >

•	Ukládat emcalc.log

Zaškrtnutí volby aktivuje ukládání výpočtů do souboru emcalc.log, který se nachází v adresáři, kde je program nainstalován - obvykle C:\Program Files\Emcal.

•	Vymazat při startu

Volba znamená, že při každém startu programu bude historie vymazána a začne nové ukládání od začátku. Soubor může významně narůstat, zejména pokud používáte sekvenční či interpretem řízené řešení úloh obsahující instukce iteračních cyklů interpretu BASIC.

•	Smazat historii

Toto tlačítko bezprostředně vymaže obsah souboru emcalc.log

Ukládat >

•	Výsledky

Volba aktivuje ukládání pouze výsledků výpočtů.

•	Výrazy a výsledky

Volba aktivuje ukládání výsledků výpočtů a výrazů ve formátu výraz = výsledek

např:  1+2 = 3

•	Výrazy, hodnoty proměnných a výsledky

Volba aktivuje ukládání výsledků výpočtů, hodnot proměnných použitých ve výrazech a výrazů samotných. Záznam pak kupříkladu může vypadat následovně:

Rs=(Q-1)*Q^T*P/(Q^T-1) = 1,06666666666667

 P=1

 Q=2

 T=4

•	Kopírovat do schránky

Volba zajišťuje automatické kopírování každého výsledku výpočtu do schránky systému Windows.

Karta Jazyk

Seznam obsahuje všechny dostupné instalované jazykové verze. Názvy jazyků korespondují názvům jazykových souborů .lng. Vyberte ze seznamu jazyk, který chcete používat a stiskněte tlačítko Použít.

Přidat další verzi do seznamu můžete sami zkopírováním některého souboru .lng a jeho přejmenováním na patřičný název jazyka. Pak je třeba samozřejmě soubor přeložit do příslušného jazyka s dodržením všech konvencí, které jsou podrobně uvedeny na stránce Lokalizace programu

Karta Vzhled

Na této kartě lze uživatelsky nastavit atributy (druh, velikost styl a barvu) písma displeje a barvu pozadí displeje, a to zvlášť pro režim práce v oboru reálných a komplexních čísel.

Při používání nestandardního barevné schématu v systému Windows může nastat nutnost zvýraznění barvy písma stavových přepínačů. Pro vyvolání dialogu pro nastavení barvy slouží tlačítko [image] ve skupině Přepínače.

Užitečný tip:	Máte-li potíže s inicializací programu nebo s nedostupností některého okna, dříve než se obrátíte na distributora či technickou podporu, ukončete program EMcalc a zkuste smazat soubor emcalc.ini. Je pravděpodobné, že potíže zmizí.

Dříve než smažete soubor emcalc.ini, pořiďte prosím, jeho kopii pro případnou analýzu problému.


Okno aplikace

Po prvním spuštění programu se zobrazí standardní okno aplikace uprostřed obrazovky. Velikost aplikačního okna je závislá na aktuálním rozlišení obrazovky, čím je rozlišení vyšší, tím menší je velikost aplikačního okna. Aplikace je navržena tak, aby ji bylo možné provozovat i při nejnižší možné hodnotě rozlišení, tj. 640x480 bodů.

Standardní okno aplikace

Miniokno aplikace

Mezi oběma verzemi lze přepínat systémovým tlačítkem Maximalizovat/Obnovit nebo klávesovou zkratkou Ctrl+D. V minioknu lze provádět veškeré výpočty, používat proměnné, přiřazovat hodnoty atd. včetně generování datových řad. V minioknu je sice dostupné minimum ovládacích prvků ovšem je-li nastaveno zobrazení aplikace Vždy navrchu (např. klávesovou zkratkou Ctrl+T), můžeme mít EMcalc stále viditelně k dispozici, i když právě pracujeme s jinou aplikací.

Informace k jednotlivým oknům (formulářům) aplikace naleznete pod hesly:

Seznam proměnných

Seznam funkcí

Knihovna výrazů

Najít text (v knihovně výrazů)

Převody jednotek

Parametry datové řady

Statistická analýza

Regresní analýza

Graf datové řady

Nastavení programu

Nápověda

Tip dne


Hlavní menu

Hlavní menu standardního okna aplikace

Je-li zobrazeno standardní aplikační okno, je k dispozici hlavní menu, jak ukazuje obrázek.

Položky menu, které nelze v dané chvíli aktivovat jsou zobrazeny šedým stínovým písmem. Práce se systémem menu odpovídá zvyklostem aplikací pro operační systém Windows 95/98/NT/2K/ME/XP.

Rozvinuté nabídky hlavního menu ukazují následující obrázky:

Menu Soubor

Menu Proměnné

Menu Funkce

Menu Analýza

Menu Graf

Menu Okno

Menu Nápověda


Kontextové menu

Pro většinu objektů aplikace EMcalc je po stisknutí pravého tlačítka myši (případně klávesovou zkratkou Shift+F10) dostupné kontextové menu (místní nabídka). Obrázek ukazuje kontextové menu displeje. Z nabídek je zřejmé, jaké operace je možné provádět s číselnou hodnotou zobrazenou na displeji.

Jednotlivá kontextová menu jsou zobrazena v rámci příslušných kapitol.


Panel nástrojů

Pro snadný přístup k nejpoužívanějším funkcím programu slouží panel nástrojů. Chceme-li získat stručnou nápovědu k významu jednotlivých tlačítek panelu nástrojů, stačí umístit kurzor nad příslušné tlačítko. Na několik sekund se zobrazí plovoucí nápověda, jak ukazuje obrázek.

Význam tlačítek na panelu nástrojů:

otevřít - otevření souboru .fx matematické úlohy

uložit jako - uložení souboru .fx pod názvem

zobrazit/skrýt seznam funkcí - matematické funkce zabudované v programu

parametry datové řady - zadání mezí a kroku iterační proměnné

změnit názvy proměnných - přejmenování proměnných ve vstupních polích

kopírovat do schránky - kopírování obsahu displeje do schránky Windows

vyhodnotit výraz - toto tlačítko ma shodnou funkci s tlačítkem Enter


Metoda drag & drop

Program EMcalc podporuje v mnoha situacích pro snadné a rychlé přenášení dat mezi jednotlivými jejími komponentami metodu drag & drop (táhni a pusť). Pro provedení této operace stiskněte a přidržte levé tlačítko myši (např. nad displejem) a za stálého přidržování stisknutého tlačítka myši přemístěte kurzor myši do požadovaného vstupního pole, pak tlačítko myši uvolněte.

Kopírování hodnoty

Metodou drag & drop lze "přetahovat" obsah displeje do vstupního pole Výraz nebo do libovolného pole pro proměnné. Dále je podporováno kopírování statistických hodnot z formulářů statistické a regresní analýzy do vstupních polí proměnných pro jejich snadné další zpracování. Metodou drag & drop lze dále kopírovat hodnoty prvků kompletní datové řady přetáhnutím z náhledového grafu do datové tabulky statistiky atd.

Schopnost akceptovat přetahovaný text je indikována tvarem kurzoru myši, jak ukazuje obrázek:

Záměna hodnot

Program EMcalc podporuje dále pomocí metody drag & drop záměnu obsahu políček nesoucích názvy proměnných (musí být aktivní režim Změna názvů proměnných) nebo záměnu obsahu dvou polí pro hodnotu proměnné. Postup je shodný jako při kopírování, poněkud odlišný je jen tvar kurzoru myši, jak ukazuje obrázek.

Vnoření při přemístění položky kategorie

V knihovně výrazů lze metodou drag & drop např. zaměňovat řádky v mřížce s jednotlivými výrazy nebo lze reorganizovat strom kategorií.

Vytažení vstupního pole výraz z hlavního okna

Je-li text výrazu ve vstupním poli Výraz příliš dlouhý, lze metodou drag & dock provést vytažení vstupního pole do plovoucího okna a jeho rozšíření. Více informací....


Klávesové zkratky

Zkratka	Význam

Alt+Left    PgDn	zaokrouhlení na nižší počet platných míst

Alt+Right  PgUp	zaokrouhlení na vyšší počet platných míst

Alt+PgUp	následující postfix inženýrské notace

Alt+PgDown	předcházející postfix inženýrské notace

Ctrl+A	přepíná úhlové jednotky deg-rad-grad

Ctrl+B	přepíná číselnou soustavu bin-oct-dec-hex

Ctrl+C	kopíruje do schránky

Ctrl+D	přepíná miniokno-standardní okno

Ctrl+E   Ctrl+PgDn	přepíná formát eng-norm

Ctrl+F	přepíná formát norm-fix-sci-eng

Ctrl+G	zobrazí okno Graf datové řady

Ctrl+I	zobrazí okno Editor výrazů

Ctrl+J	zobrazí okno Knihovna výrazů

Ctrl+K	zobrazí okno Převody jednotek

Ctrl+L	zobrazí okno Historie výpočtů

Ctrl+M	přepíná režim insert/evaluation

Ctrl+N	zobrazí okno Uživatelské konstanty

Ctrl+O	otevírá dialog Otevřít

Ctrl+P	zobrazí panel s funkčními tlačítky

Ctrl+Q	zaměření vstupního pole Výraz

Ctrl+R   Ctrl+PgUp	přepíná režim zaokrouhlování

Ctrl+S	ukládá data

Ctrl+T	přepíná režim Vždy navrchu

Ctrl+U	zobrazí okno Výstup úlohy BASIC

Ctrl+V	vkládá ze schránky

Ctrl+W	zobrazí datovou řadu statistické/regresní analýzy

Ctrl+X	vystřihne zvýrazněný text

Ctrl+Y	zobrazí okno Seznam proměnných

Ctrl+Z	odvolá změnu editovaného textu

Ctrl+Ins	kopíruje výsledek z displeje do schránky Windows

Ctrl+Space	přepínání funkce mezerníku

Ctrl+Down	zaměří následující vstupní pole

Ctrl+Up	zaměří předcházející vstupní pole

Ctrl+F4	skryje nemodální okno

Alt,                F10	aktivuje hlavní menu

Alt+C	vloží aktuální konstantu

Alt+D	přidá hodnotu do statistických dat

Alt+E	vyhodnotí výraz, zaregistruje proměnné

Alt+R	zruší uživatelské proměnné a vynuluje

Alt+W	zobrazí/skryje okno Statistická analýza

Alt+X	zaměří vstupní pole 1. proměnné

Alt+Y	zaměří vstupní pole 2. proměnné

Alt+V	otevře knihovnu výrazů

Alt+Down,    F4	vysune seznam historie vstupních polí

Alt+Space	aktivuje systémové menu

Alt+BackSpace	odvolá změnu editovaného textu

Alt+F1	zobrazí kontextovou nápovědu klíčového slova BASIC

Alt+F4	uzavře aktivní okno

Tab	zaměří následující ovládací prvek

Shift+Tab	zaměří předcházející ovládací prvek

Shift+Esc	minimalizuje okno aplikace

Shift+Ins	vloží výsledek z displeje do zaměřeného vstupního pole na pozici kurzoru

Shift+Ctrl+B	zpětné rotování číselných soustav hex-dec-oct-bin

Shift+Ctrl+F	přepíná normální a tučné písmo zaměřeného vstupního pole

Esc	skryje aktivní okno vyjma hlavního okna

Up,  Down	prochází seznamem historie ComboBoxu

F1	zobrazí kontextovou nápovědu

F9,  Ctrl+Enter	spuštění naprogramované úlohy BASIC z hlavního okna


Lokalizace programu EMcalc

Program EMcalc od verze 1.1 umožňuje lokalizaci uživatelského rozhraní do národního prostředí nezávisle na autorovi programu. Jazyk uživatelského rozhraní lze měnit za chodu programu.

Postup lokalizace programu

Postup lokalizace programu spočívá především v těchto dvou krocích:

1. Zkopírování souboru english.lng pod názvem korespondujícím názvu jazyka, např. french.lng

2. Přeložení textů v takto vytvořeném souboru do požadovaného jazyka.

Soubory pro lokalizaci

Pro úplnou lokalizace programu EMcalc je nutný překlad textů těchto souborů:

  licence.txt	- licenční ujednání

  readme.txt	- informace o programu EMcalc

  tips.txt	- tipy dne

  emcalc.exp	- uživatelská knihovna výrazů

  english.lng	- řetězce uživatelského rozhraní programu EMcalc

Poznámka:	Soubor nápovědy Emcalc.hlp je binární soubor a není tedy jednoduchými prostředky (pomocí textového editoru) lokalizovatelný. Po dohodě s autorem programu lze vytvořit na přání lokalizovanou verzi souboru nápovědy. EMcalc verze 1.1 obsahuje soubor nápovědy lokalizovaný do angličtiny němčiny emcalc_german.lng. Při změně jazyka je automaticky změněna i jazykové verze nápovědy.

Lokalizace souboru Licence.txt

Pro dobrý vzhled formátování textů je nutno dodržet zalomení odstavců.

Lokalizace souboru Tips.txt

Nutnou podmínkou je, že každý tip musí být umístěn na jednom řádku i když obsahuje více vět. Pokud soubor přejmenujete tak, že bude za podtržítkem obsahovat název jazyka (např. tips_french.txt), pak bude možno za chodu programu měnit jazykové verze tipů.

Lokalizace souboru Emcalc.exp

Jelikož soubor emcalc.exp není prostý textový soubor, je nutno překlad textů v něm obsažených provádět za běhu programu EMcalc po otevření knihovny výrazů a aktivaci editačního režimu.

Lokalizace souboru English.lng

Tento soubor je pro lokalizaci uživatelského rozhraní nejvýznamnější. Struktura souboru je obdobná jako u všech ini souborů.

[NazevSekce]

NazevKlice=Hodnota klíče

NazevDalsihoKlice=Hodnota dalšího klíče

•	V hranatých závorkách jsou uvedeny názvy sekcí - neměnit!

•	Nalevo od rovnítka jsou názvy klíčů - neměnit!

•	Překládají se pouze hodnoty klíčů napravo od rovnítka.

•	Každý klíč je umístěn na samostatném řádku, dlouhé texty se nesmí zalamovat!

•	Středník na začátku řádku uvozuje komentáře.

•	Mezery na začátku řádku nejsou relevantní.

•	Pozor na dodržování interpunkce. Zejména tečky, dvojtečky a uvozovky nesmí být vynechány.

Význam symbolických parametrů:

%s	je řetězcový parametr, který je za běhu programu nahrazen skutečnou hodnotou

%d	je numerický parametr, který je za běhu programu nahrazen skutečnou hodnotou

%\	je symbolický parametr pro zalamování konců řádku. Nesmí se na rozdíl od %s přemísťovat

%\\	je symbolický parametr pro zalamování odstavců a nesmí se přemísťovat.

Prefix klávesových zkratek:

Znak & je prefix klávesových zkratek. Jelikož jeho umístění ovlivňuje funkčnost programu, je nutno dodržovat tato pravidla:

•	Neumisťovat před národní znak s diakritikou!

•	Na jednom formuláři (oknu) se nesmí znaky klávesových zkratek opakovat!

•	Efekt prefixu & je nutno pečlivě prověřovat na spuštěném programu.

•	Prefixy & je nutno použít ve slovech, kde použity byly. Nesmí se dávat tam, kde nejsou.

Ostatní symboly

Ostré závorky <> ohraničují texty zobrazované ve stavovém řádku. Nesmí být vynechány!

Znak | (pipe, pajpka) odděluje popisky nabídek menu od textu zobrazovaného ve stavovém řádku.

Ošetření délky textových řetězců

Dlouhé názvy popisků ovládacích prvků bude někdy nutné vhodně zkrátit (nutno vyzkoušet). S dlouhými texty zpráv MSG_TextZpravy si není nutno dělat starosti. Zformátují se samy.


Syntaxe výrazů

Výraz, který se má vyhodnotit, se zapisuje do vstupního pole Výraz. Vstupní pole pro proměnné mohou kromě číselných hodnot obsahovat také výrazy.

Syntaxí rozumíme formu zápisu matematických výrazů. Ta je velmi podobná obecným pravidlům pro psaní matematických výrazů. Zásadní rozdíl je ten, že zatímco se v matematice vynechávají symbol násobení mezi operandy a závorky argumentů funkcí, je zde jejich použití povinné.

Do historie několika posledně zadaných výrazů lze "nahlédnout", když na chvíli umístíme kurzor myši nad popisek Výraz. Na několik vteřin se zobrazí bublinová nápověda, jak ukazuje obrázek nahoře.

Výrazy z historie lze vkládat do vstupního pole, otevřením rozbalovacího seznamu (klepnutím na šipku na konci vstupního řádku pro výraz) a následným výběrem, jak ukázuje další obrázek.

Skladba výrazů

Výrazy se skládají z operandů a operátorů (symbolů matematických operací).

Operátory stejné priority se vyhodnocují zleva doprava, prioritu operátorů lze změnit použitím závorek. Podporováno je padesát úrovní vnoření závorek. Použití závorkového páru je dále povinné u argumentů funkcí. Jedná-li se o funkci dvouargumentovou, je třeba argumenty vzájemně oddělit středníkem.

Operandy mohou být tvořeny číselnými hodnotami, konstantou pi nebo e, názvem proměnné, jednoduchou případně složenou funkcí nebo výrazem uzavřeným v závorkovém páru.

Pro argumenty funkcí platí totéž co pro operandy.

Zápis výrazu tedy může být v principu velmi složitý. Před vyhodnocením výrazu ale nesmíme zapomenout inicializovat použité proměnné (přiřadit jim číselnou hodnotu).

Přiřazení hodnoty proměnné v poli Výraz

Do vstupního řádku pro zápis výrazu je možné zapsat i přiřazení hodnoty proměnné. Pro přiřazení se použije znak rovnítko, např. X=5. Na pravé straně rovnítka může být kromě číselné hodnoty i výraz. V tom případě bude výraz nejdříve vyhodnocen a jeho hodnota přiřazena proměnné.

Parametrické rovnice v poli Výraz

Při výpočtu rovinných křivek daných parametrickými rovnicemi máme možnost kromě použití dialogu Parametry datové řady zapsat výrazy pro souřadnice v ose x a v ose y přímo do vstupního pole Výraz podle následující syntaxe:

f(t)...g(t)	pro jednoparametrickou rovinnou křivku,

f(r,t)...g(r,t)	pro dvouparametrickou soustavu rovinných křivek.

Analytická funkce f(t) případně f(r,t) je předpis pro hodnoty souřadnic v ose x, analytická funkce g(t) případně g(r,t) je pak předpis pro hodnoty souřadnic v ose y. Tyto funkce jsou současně buďto jednoargumentové nebo dvouargumentové jednoduché nebo složené funkce.

Mezi oběma výrazy musí být bez mezer zapsány právě tři tečky. Řídící proměnnou iteračního cyklu může být jeden nebo dva proměnné parametry. Podle toho obdržíme jednu křivku nebo parametrickou soustavu rovinných křivek.

Rozvoj nekonečné řady v poli Výraz

Pro zápis rozvoje nekonečné řady není k dispozici zvláštní formulář. Do vstupního pole Výraz se zapíše vzorec pro obecný člen rozvoje nekonečné řady a odděleno třemi dvojtečkami se doplní specifikací iteračního cyklu pro vyčíslení nekonečné řady dle následující syntaxe:

f(x,n):::počáteční_hodnota..konečná_hodnota:krok

Analytická funkce f(x,n) je dvouargumentovou funkcí vyjadřující obecný člen rozvoje nekonečné řady, kde argument x představuje nezávisle proměnnou a argument n řídící proměnnou iterace nekonečné řady.

Příklad:	Použití nekonečných řad a křivek daných parametrickými rovnicemi je ukázáno na příkladech, které jsou dostupné z menu Graf.

Tak například pilovitá křivka rostoucí:

-1/n*sin(n*x):::n=1..1000:1,  kde v poli pro proměnnou x je dáno: x=0..10*pi:pi/100

Používání závorek

Při psaní výrazů lze upřednostnit aritmetické operace s nižší prioritou před aritmetickými operacemi s vyšší prioritou uzavřením části výrazu do závorkového páru. Při psaní složitých výrazů s větší hloubkou zanoření závorek může nastat nepřehledná situace. Těmto situacím je lépe předcházet, k čemuž napomáhá zejména:

•	používání mezerníku pro vkládání závorkového páru,

•	vytažení vstupního pole Výraz mimo hlavní okno umožňující jeho rozšíření,

•	zkrácený zápis velkých a malých čísel pomocí inženýrské postfixové notace,

•	používání proměnných ve výrazu odkazující na parciální výrazy ve vstupních polich proměnných,

Poznámka:	Kontrolu párovosti závorek provádí program automaticky, při nalezení chyby je nadbytečná závorka zvýrazněna.

Plovoucí vstupní pole Výraz

Vstupní pole Výraz se vytáhne metodou drag & drop uchopením a tažením vstupního pole za zvýrazněný svislý proužek nalevo od vstupního pole, jak je vidět na obrázku:

Vstupní pole Výraz se tímto umístí do samostatného okna obdobně jako je tomu v případě plovoucích panelů nástrojů. Šířku pole lze dle potřeby měnit.

Plovoucí okno Výraz se vrátí zpět na původní místo tažením za titulek na své původní místo. Vstupní pole opustí plovoucí okno a "zaskočí" zpět do hlavního okna.

Poznámka:	Pokud uzavřete plovoucí okno tlačítkem Zavřít, skryje se i vstupní pole Výraz. Zobrazit ho lze zase klepnutím dovnitř prázdného rámečku v hlavním oknu.


Knihovna výrazů

Program EMcalc obsahuje knihovnu výrazů uspořádaných do kategorií různých oborů. Výrazy jsou vlastně vzorce, matematické formule pro výpočet např. fyzikálních veličin z jiných veličin.

Program EMcalc obsahuje od verze 2.0 navíc knihovnu výrazů programy úloh - sekvenční a strukturované matematické úlohy interpretované implementovaným příkazovým interpretem v jazyce BASIC.

Knihovnu výrazů lze otevřít pomocí klávesové zkratky Ctrl+X nebo myší klepnutím na tlačítko Výraz umístěné nalevo od vstupního pole Výraz:

Knihovna výrazů je komplexní nástroj obsahující databázi výrazů, průzkumník pro správu výrazů a textový editor. Na rozdíl od matematických úloh, které se ukládají do souborů *.fx, poskytuje knihovna výrazů značný komfort práce pro vytváření a údržbu rozsáhlých knihoven výrazů.

Od verze 2.0 programu EMcalc jsou dále v knihovně výrazů k dispozici nové nástroje pro podporu programování matematických úloh. Tyto nástroje jsou natolik komplexní, že jim je věnována samostatná kapitola.

Stromová struktura kategorií

Jednotlivé úlohy či seznamy vzorců zobrazené v pravém horním oknu tvoří logické celky, které jsou začleněny do kategorií podobně jako je tomu u dokumentů a složek v systému Windows. Kategorie jsou uspořádány do hierarchické stromové struktury zobrazené v levém oknu.

Pro usnadnění práce se stromovou strukturou kategorií je k dispozici kontextová nabídka:

Editační příkazy místní nabídky jsou dostupné pouze v režimu editace, tj. pokud je nabídka menu Editovat aktivní, případně pokud je zamáčknuto tlačítko Editovat na panelu nástrojů. Pro snadné přemístění kategorie do libovolné části stromové struktury je zabudována podpora metody drag & drop, která v kombinaci s klávesou Ctrl umožňuje vnoření do nižší úrovně hierarchické struktury.

Vyhledání hesla kategorie

Snadné a rychlé vyhledání hesla kategorie umožňuje vstupní pole s rozbalovacím seznamem, kam můžete začít psát hledané heslo. Vyhledání probíhá inkrementálně - začněte psát název kategorie, zvýraznění kategorie se postupně přemisťuje podle shody zadaného řetězce znaků s počátečními písmeny názvu kategorie.

Hledání lze dokončit stiskem klávesy Enter, čímž přejde zaměření do levé části okna - stromu kategorií a nalezená kategorie se zvýrazní.

Vyhledání textu v knihovně výrazů

Pro případ, že potřebujeme vyhledat všechna místa s výskytem určitého řetězce znaků v celé knihovně, slouží dialogové okno Najít text, které se vyvolá pomocí tlačítka Hledat text.

Seznamy výrazů

Seznamy výrazů lze plnit ručně nebo lze importovat odzkoušené úlohy z hlavního okna EMcalcu. Spolu s výrazem jsou do pravého dolního okna přeneseny názvy proměnných a příslušné hodnoty ze vstupních polí Proměnné.

K dispozici je kontextové menu s nabídkami nejpoužívanějších funkcí:

Podporována je rovněž metoda drag & drop pro přemístění řádků. Pokud se kurzor nachází na posledním řádku seznamu, lze nový řádek přidat klávesou Down. Klávesa Up jej opět odstraní, pokud zůstal řádek prázdný.

Okno editoru vysvětlivek

V pravé dolní části okna se nalézá textový editor pro psaní vysvětlivek (okno vpravo dole). Pokud se na řádku editoru vyskytuje rovnítko, je toto interpretováno jako klíč, který symbolizuje použití proměnné, jejíž název je nalevo od rovnítka zatímco hodnota se uvádí napravo od rovnítka. Není-li hodnota uvedena, je proměnná inicializována hodnotou nula.

Místo číselné hodnoty se na tomto místě mohou vyskytovat i výrazy a  symboly pro výpočty datových řad. Jsou-li použity výrazy, je nutno dbát pořadí, v jakém se proměnné inicializují.

Za hodnotu proměnné (případně text výrazu) je považována sekvence znaků, která následuje bezprostředně za rovnítkem a je od dalšího textu oddělena mezerou nebo tabulátorem. Pokud daný řádek rovnítko neobsahuje, je celý interpretován jako komentář. Je-li potřeba, aby řádek komentáře rovnítko obsahoval, musí se na začátek řádku vložit apostrof.

V hranatých závorkách se uvádí rozměr jednotky veličiny, kterou daná proměnná symbolizuje. Nemá-li daná jednotka rozměr, uvede se pomlčka. Zápis jednotek je v současné verzi programu nepovinný, může se však v příštích verzích programu stát parametrem povinným, a proto se jejich používání doporučuje.

Za hranatými závorkami následuje text vysvětlivky. Vyplněním všech těchto informací získáme dobře okomentovaný záznam, který nám v budoucnu může být prospěšný zvláště pokud se jedný o výraz speciální.

Poznámka:	Tabulátory se v okně editoru vkládají pomocí kombinace kláves Ctrl+Tab.

Indexové písmo

EMcalc podporuje psaní horních indexů pro zpřehlednění zápisu jednotek fyzikálních veličin v oknu editoru vysvětlivek. Klávesová zkratka Ctrl+I  zobrazí místní nabídku, jak ukazuje následující obrázek.

Panel nástrojů

Pro ovládání pomocí myši je k dispozici panel nástrojů, kde kromě ovládacích tlačítek je integrováno vstupní pole pro vyhledávání hesla kategorie.

Vstupní pole s rozbalovacím sezname slouží pro vyhledání hesla kategorie. Následuje popis jednotlivých tlačítek:

import a export knihovny výrazů do balíčku

uložit změny provedené v knihovně výrazů

vyhledat textový řetězec v knihovně výrazů

povolit/zakázat režim editace knihovny výrazů

vložit novou kategorii (nebo řádek tabulky nebo šablonu vysvětlivek) do knihovny výrazů

vyjmout kategorii (nebo řádek tabulky nebo vybraný text editoru) z knihovny výrazů

kopírovat kategorii (nebo řádek tabulky nebo vybraný text editoru) do schránky Windows

vložit kopii kategorie (nebo řádek tabulky nebo text ze schránky) do knihovny výrazů

odstranit kategorii (nebo řádek tabulky nebo vybraný text editoru) z knihovny výrazů

změnit velikost okna editoru úlohy (režim TASK)

spustit úlohu se zastavením na řádku s kurzorem (režim TASK)

spustit běh úlohy (režim TASK)

pozastavit/pokračovat v běhu úlohy (režim TASK)

ukončit běh úlohy (režim TASK)

použít výraz (přenést jej do hlavního okna aplikace)

vyvolat systém nápovědy EMcalc

Export výrazu do hlavního okna

Tlačítko Použít vloží vybraný výraz do pole Výraz hlavního okna aplikace a naplní postupně políčka s názvy proměnných a vstupní pole pro hodnoty proměnných daty z okna editoru.

Klávesové zkratky

Ins	vloží novou kategorii za vybranou kategorii stejné úrovně

Shift+Ins	vloží novou podkategorii za vybranou kategorii na začátek vnořené úrovně

Del	odstraní vybranou kategorii a všechny případné podkategorie

Ctrl+A	zvýraznit všechen text editoru (editor musí být zaměřen)

Ctrl+E	povolit/zakázat režim editace knihovny výrazů

Ctrl+F	zobrazit dialog pro vyhledání textu v knihovně výrazů

Ctrl+I	zobrazit místní nabídku pro vložení horního indexu do editoru

Ctrl+M	vložit režim výpočtů do editoru (nastavení stavových přepínačů)

Ctrl+W	vložit stav otevřených nemodálních oken do editoru (velikost a poloha)

Clrt+(+)	zaškrtnutí všech zaškrtávacích políček stromu kategorií při importu a exportu do balíčku

Clrt+(-)	zaškrtnutí všech zaškrtávacích políček stromu kategorií při importu a exportu do balíčku

Ctrl+F4	skryje okno Knihovny výrazů a ponechá ho v paměti

Alt+1	zaměření okna stromu kategorií

Alt+2	zaměření okna se seznamem výrazů

Alt+3	zaměření okna textového editoru

Alt+F4	zavře okno Knihovny výrazů a odstraní ho z paměti

Poznámka:	Dále jsou v režimu TASK (naprogramované úlohy) k dispozici klávesové zkratky F2 až F9, které jsou popsány u hesla Ladění úloh.

Soubor knihovny výrazů

V souboru knihovny výrazů emcalc.exp jsou uloženy veškeré data, která se vkládají nebo importují do knihovny výrazů (stromová struktura kategorií, výrazy, poznámky a texty interpretovaných úloh). Soubor emcalc.exp se zavádí z adresáře, kde je program EMcalc instalován (nejčastěji c:\Program files\Emcalc). Při lokalizaci programu se překládá pouze obsah souboru a na rozdíl od souboru nápovědy se název souboru nemění.

Struktura souboru emcalc.exp je binární a nelze ji editovat běžnými textovými editory. Jakékoliv úpravy knihovny mimo prostředí programu EMcalc vedou k porušení integrity souboru a tudíž ke ztrátě dat.

Knihovnu výrazů lze modifikovat ručně nebo lze data importovat a exportovat pomocí vestavěných funkcí import a export (viz níže).

Import a export knihovny výrazů z (do) balíčku

Program EMcalc je distribuován s ukázkou knihovny výrazů s omezeným počtem záznamů. Knihovnu výrazů si uživatelé mohou postupně doplňovat sami nebo si mohou ucelenou knihovnu pro specifický obor objednat u distributora programu. Import a export knihovny výrazů se provádí pomocí nabídek menu, které se vyvolá tlačítkem Balíčky knihovny výrazů, jak ukazují následující dva obrázky

Následuje dialog pro výběr souboru balíčku knihovny (soubor exp) a poté je z importované knihovny načtena stromová struktura kategorií zobrazená v pravé části okna:

Implicitně jsou všechna zaškrtávací pole zaškrtnuta, to znamená, import kompletního balíčku. Odšrtnutím nepotřebných částí lze provést výběr kategorií. Balíček bude importován do místa vybrané kategorie ve stromové struktuře stávající knihovny (v levé části okna). Takto lze připojovat balíčky do různých větví stromu.

Import balíčku se dokončí tlačítkem Dokončit. Knihovna se aktualizuje načtením příslušných dat ze souboru balíčku (.exp) a formulář knihovny získá opět svůj standardní vzhled.

Export knihovny výrazů do balíčku

Postup při exportu do balíčku je obdobný jako při importu s tím rozdílem, že u každého uzlu stromu stávající knihovny (v levé části okna) se zobrazí prázdná zašrtávací políčka. Při exportu je třeba zaškrtnout ty kategorie, které mají být vyexportovány.


Editor výrazů

Program EMcalc implementuje ve verzi 2.2 okno s textovým editorem, jehož titulek nese název Editor výrazů. Textový editor slouží jednak k průběžnému zápisu výrazů, jednak k vlastnímu vyhodnocování výrazů při každém stisku klávesy Enter. Průběžné provádění výpočtů je řádkově orientované, výsledná hodnota výrazu je vložena na nový řádek za řádkem s vyhodnocovaným výrazem.

Okno se otevírá klávesovou zkratkou Ctrl+I nebo nabídkou menu Okno/Editor výrazů nebo klepnutím na tlačítko Výraz za současného přidržení klávesy Shift nebo klávesy Ctrl.

Panel nástrojů obsahuje tlačítka pro práci se soubory úloh, pro editaci textu výrazů a pro nastavení barvy a vzhledu písma a barvy pozadí.

V editoru výrazů lze jednak provádět průběžné výpočty, jednak se lze vracet k předchozím výrazům, lze je modifikovat a opakovaně vyhodnocovat.

Vkládání závorkového páru

Obdobně, jako lze v hlavním aplikačním oknu vkládat do vstupních polí závorkový pár pomocí mezerníku, slouží k usnadnění zápisu závorkového páru kombinace kláves Ctrl+mezerník popřípadě Shift+mezerník.

Smazání řádku s kurzorem

Pro usnadnění smazání řádku s kurzorem slouží klávesová zkratka Ctrl+Del.

Vložení řádku s kurzorem

Pro usnadnění vložení řádku na pozici kurzoru slouží klávesová zkratka Ctrl+Ins.

Odřádkování

Původní funkce klávesy Enter pro odřádkování lze vyvolat klávesovou kombinací Ctrl+Enter.


Vyhledání textu v knihovně výrazů

V praxi se občas vyskytne potřeba vyhledat v knihovně výrazů všechna místa s výskytem určitého textu. K tomu slouží speciální dialog, který se vyvolá z knihovny výrazů tlačítkem Hledat text.

Aktivací tohoto tlačítka se vyvolá níže zobrazené dialogové okno Najít text. K dispozici je panel nástrojů umožňující zadat nejen hledaný textový řetězec, nýbrž lze také volit, ve které oblasti knihovny se má vyledání provést.

Význam tlačítek panelu nástrojů je následující:

Prohledat názvy kategorií

Prohledat komentáře a úlohy

Najdi text

Jít k nalezené položce

Postup při vyhledání textu

První dvě tlačítka určují oblast hledání. Lze tedy prohledávat buďto v celou knihovnu nebo pouze v názvy kategorií nebo jen v texty komentářů úloh.

Hledaný text se zapíše do vstupního editačního pole s rozbalovacím seznamem. Při hledání se nerozlišují malá a velká písmena. Hledání začne potvrzením klávesou Enter nebo klepnutím myší na tlačítko Najdi text v panelu nástrojů. Pokud je text nalezen, vypíší se do tabulky všechny jeho výskyty. V levém sloupci se zobrazí názvy kategorií, v pravém sloupci komentáře úloh.

Při procházení nalezenými výskyty (při změně vybrané položky) se zároveň aktualizuje heslo kategorie v knihovně výrazů včetně souvisejících dat, což nalezení hledaného místa dále ještě usnadňuje.

Tlačítko Jít k nalezené položce uzavře dialogové okno a v knihovně aktivuje kategorii včetně úlohy, kde byl hledaný text nalezen..


Klávesové sekvence

Pro usnadnění práce s klávesnicí je k dispozici možnost náhrady sekvence dvou stejných znaků znakem jiným.

Implicitní klávesové sekvence

**  dva znaky "hvězdička" nahradí znak umocnění ^

,,  dvě čárky nahradí znak středník ;

--  dva znaky "mínus" se změní na plus +

Definování klávesových sekvencí se provádí zápisem příkazu defseq do vstupního řádku Výraz s následující syntaxí:

defseq ## @

Tento příkaz způsobí, že stiskneme-li bezprostředně dvakrát po sobě klávesu #, bude dvojice znaků ## nahrazena znakem @.

Zrušit libovolnou (tedy i implicitní) klávesovou sekvenci se provádí příkazem

undefseq #

kde znak # v uvedené syntaxi zastupuje znak, který byl dosud nahrazován znakem jiným.

Definice klávesových sekvencí se ukládají do souboru ini a jsou přístupné i při novém spuštění programu.

Mezerník alias závorkový pár

Možná že je vám divné, proč se po stisknutí mezerníku vloží do vstupního řádku místo mezery dvojice závorek. Smyslem je usnadnit zadávání argumentů funkcí (ty musí být povinně uzavřeny v závorkovém páru). Zde se tedy nejedná o sekvenci ve smyslu výše popsaném ale o speciální obsluhu vstupu znaků z klávesnice.

Pro přepínání tohoto speciálního a standardního chování mezerníku slouží klávesová zkratka Ctrl+Space. Stav této vlastnosti mezerníku se rovněž uchovává v souboru ini.


Formát čísel

Program EMcalc podporuje kromě dekadické číselné soustavy také číselnou soustavu binární, oktalovou a hexadecimální.

Zápis reálných dekadických čísel

Lexikální prvky pro zápis dekadických čísel tvoří množinu znaků {'0'..'9', 'e','E', unární mínus, desetinná tečka nebo čárka}.

Formát zápisu čísel může být s plovoucí řádovou čárkou, nazývaný v programu EMcalc normální  (např. -0,0123) nebo exponenciální (např. -1,234E-3).

Postfixová inženýrská notace

Program dále podporuje zápis dekadických čísel v tzv. postfixové inženýrské notaci, což velmi zpřehlední a usnadní zápis čísel řádově velkých nebo malých. Podporovány jsou následující postfixy:

postfix	název	násobitel

f	femto	1E-15

p	pika	1E-12

n	nano	1E-9

u	mikro	1E-6

m	milli	1E-3

k	kilo	1E+3

M	mega	1E+6

G	giga	1E+9

T	tera	1E+12

P	peta	1E+15

Tak například číselnou hodnotu 1234000 lze v inženýrské notaci zapsat jako 1,234M nebo 1234k atd. Je-li aktivní zobrazení čísel na displeji v postfixové inženýrské notaci, bude číslo automaticky zobrazeno v nejkratším a nejpřehlednějším tvaru tak, aby zobrazené číslo před postfixem bylo řádu nultého až nejvýše druhého.

Poznámka:	Postfixy inženýrská notace lze kombinovat se symbolem imaginární jednotky tak, že imaginární jednotka je uvedena na konci zápisu komplexního čísla.

Desetinná čárka versus desetinná tečka

Program EMcalc připouští v zápisu desetinných čísel jak desetinnou čárku tak i desetinnou tečku bez ohledu na nastavení znaku oddělovače desetinných míst v operačním systému.

Vlastnosti čísel zobrazených v plovoucí řádové čárce

Definičním oborem je podmnožina reálných čísel realizovaná 80bitovým datovým typem "extended".

Rozsah čísel je dán intervalem ±(3.6E–4951..1.1E4932). Čísla, jejichž absolutní hodnota je menší než 3.6E–4951 jsou interpretována jako nula (tzv. počítačová nula), u čísel, jejichž absolutní hodnota je větší než 1.1E4932 dojde k přetečení rozsahu a je hlášena chyba "Floating point overflow".

Přesnost čísel daná datovým typem "extended" je dostatečná pro většinu technických výpočtů, neboť je zachováno minimálně 19 platných míst.

Od verze 2.0 jsou v programu EMcalc podporovány komplexní čísla. O obou složkách komplexních čísel (reálné i imaginární) platí vše co je řečeno o rozsahu a přesnosti čísel reálných.

Hromadění zaokrouhlovacích chyb

Ačkoliv je zmíněná přesnost značně vysoká, je nutné mít na zřeteli, že při iteračním výpočtu může docházet k významné kumulaci zaokrouhlovacích chyb čísel v plovoucí řádové čárce. Jedná se především iracionální čísla (jako např. Ludolfovo číslo p = 3,14159...) případně i některá čísla racionální.

Dále existují speciální matematické úlohy, kdy neuspokojivé výsledky jsou zaviněny nestabilitou algoritmu řešení díky citlivosti některých koeficientů řešené úlohy a je nutno se zabývat problematikou citlivostní analýzy.


Komplexní čísla

Reálná čísla nevystačí k řešení všech matematických úloh. Např. rovnice x^2+1=0 nemá v množině reálných čísel řešení, neboť neexistuje žádné reálné číslo r ∈ R, pro které je r^2 = -1.

Ve verzi 2.0 program EMcalc byly proto implementovány čísla komplexní, jejichž definičním oborem je množina komplexních čísel {C} kartézského čtverce C = R x R a matematické operace nad množinou komplexních čísel. Operandy algebraických výrazů a argumenty funkcí mohou být nyní i čísla komplexní.

Rozšíření EMcalcu o výpočty s komplexními čísly může být přínosem v různých oblastech jako např. ve vektorové algebře, v elektrotechnice v obvodech se střídavým proudem a dalších.

Definice komplexního čísla

Komplexním číslem rozumíme každý prvek z množiny C = R x R, tj. každou uspořádanou dvojici z= [x,y] reálných čísel kartézského čtverce R x R, na kterém jsou pro každé uspořádané dvojice z1 = [x1,y1], z2=[x2,y2] ∈ C definovány rovnost a operace sčítání a násobení takto:

rovnost:	z1=z2 <=>	x1=x2 ^ y1=y2

sčítání:	z1+z2	=	[x1+x2, y1+y2]

násobení:	z1 *z2	=	[x1x2 - y1y2, x1y2-x2y1]

Zápis komplexních čísel

Komplexní čísla lze psát ve tvaru:

•	kartézském (neboli algebraickém, složkovém),

•	goniometrickém (neboli trigonometrickém),

•	exponenciálním.

Program EMcalc umožňuje současné používání všech tří uvedených zápisů.

Imaginární jednotka

Jako symbol imaginární jednotky lze použít písmene i nebo j (písmeno j se používá v elektrotechnice), což se nastavuje v dialogu Nastavení na kartě Proměnné. Symbol imaginární jednotky se musí psát bez mezery za numerickou hodnotu. Je-li imaginární složka rovna jedné, lze jedničku vynechat.

Složkový tvar komplexních čísel

z = x + y*i

kde	x ...reálná část

y ...imaginární část

i  ...imaginární jednotka

např.

z = 1+ 0i	...reálná jednotka

z = 0 + i	...ryze imaginární jednotka

z = 3	...reálné číslo

z = 3i	...ryze imaginární číslo

Goniometrický tvar komplexních čísel

z = |z| * (cos(ϕ) + i * sin(ϕ))

kde	|z| ...modul (absolutní hodnota) komplexního čísla z

ϕ  ...argument (orientovaný úhel průvodiče z=[x,y])

i    ...imaginární jednotka

Exponenciální tvar komplexních čísel

z = |z| * e^(i*ϕ)

kde	|z|	...modul (absolutní hodnota) komplexního čísla z

ϕ	...argument (orientovaný úhel průvodiče z=[x,y])

e	...Eulerovo číslo  (e=2,71828182845905..)

i	...imaginární jednotka

např.

z = 1	...reálná jednotka

z = 1*e^1,57i	...ryze imaginární jednotka

z = 3	...reálné číslo

z = 3*e^1,57i	...ryze imaginární číslo

Úhlové jednotky v exponentu komplexního čísla

Implicitními úhlovými jednotkami exponentu v exponenciálním zápisu komplexního čísla jsou radiány. Program EMcalc však podporuje přímý zápis číselné hodnoty ve stupních i gradiánech, je však nutno mezi číselnou hodnotu úhlu a imaginární jednotku vložit postfix "o" pro stupně případně postfix "g" pro gradiány (viz zápis v exponenciálním tvaru uvedený níže).

Příklad zápisu komplexních čísel v programu EMcalc

Komplexní číslo z, jehož reálná část re(z)=3, imaginární část im(z)=4, mající modul velikosti |z|=sqrt(3^2+4^2)=5 a argument v obloukové míře o velikosti j=arctg(4/3)=0,927 pak lze zapsat takto:

složkový tvar:

z = 3+4i

goniometrický tvar:

z = 5*(cos(0,927)+i*sin(0,927))

exponenciální tvar:

z = 5*e^0,927i	...úhlovou jednotkou je radián

z = 5*e^53,1oj	...úhlovou jednotkou je stupeň

z = 5*e^53,1oj	...úhlovou jednotkou je stupeň

z = 5*e^59gj	...úhlovou jednotkou je grad

Poznámka:	V exponenciálním tvaru zápisu komplexního čísla má zápis  r*e^2i  stejný efekt se zápisem r*exp(2i). U jednoduchých argumentů lze tedy místo volání exponenciální funkce exp() použít stříšku (circumflex) jako symbol exponenciální funkce.

Zobrazení komplexních čísel na displeji

Implicitně se komplexní čísla v program EMcalc zobrazují ve složkovém tvaru. Přepnutí zobrazení do tvaru exponenciálního lze provést tlačítkem [image] na tablu funkčních tlačítek nebo pomocí nabídky kontextového menu displeje.


Číselná soustava binární, oktalová a hexadecimální

Lexikální prvky

Lexikální prvky pro zápis čísel dvojkové (binární) soustavy tvoří dva znaky: {0..1}. Pro číselnou soustavu osmičkovou (oktalovou) je to množina znaků {0..7} a pro soustavu šestnáctkovou (hexadecimální) pak množina {0..9, A..F}. Znaky A až F musí být zapsány velkými písmeny. Začíná-li hexadecimální číslice znakem A..F, musí se předřadit nula. Tedy místo FF se zapíše 0FF.

Poznámka:	Ve verzi 2.1 v sestavení číslo 110 byla implementována možnost zadávat hexadecimální čísla kromě shora uvedeného formátu ve tvaru 0xC (s prefixem 0x), přičemž hexadecimální znaky této notace lze psát velkými nebo malými písmeny. Aktivace této notace se provádí v dialogu Nastavení na kartě Vzhled.

Definiční obor

Společným definičním oborem těchto číselných soustav implementovaných v programu EMcalc jsou 64bitové celočíselné hodnoty v rozsahu:

0..9,22337203685478E18 (dekadicky)

0..07FFFFFFFFFFFFFFFFh (hexadecimálně)

0..777777777777777777777o (oktalově) 0..111111111111111111111111111111111111111111111111111111111111111b (binárně)

Záporné hodnoty jsou reprezentovány binárním doplňkem těchto číslic (nejvýznamnější bit čísla má hodnotu 1). Pro práci v těchto číselných soustavách je nutno aktivovat příslušný režim číselné soustavy pomocí tlačítka [image].


Mixování a konverze číselných formátů

Mixování číselných formátů

Pro zápis čísla lze použít postfix číselné soustavy. Postfixy jsou následující:

b	(binárně)

o	(oktalově)

d	(dekadicky)

h	(hexadecimálně)

Kupříkladu dekadické číslo 123456 lze zapsat takto: 11110001001000000b nebo 361100o nebo 123456d nebo 1E240h.

Při psaní výrazů nejsme na rozdíl od všech kapesních kalkulátorů omezeni nastaveným režimem číselné soustavy. Při použití postfixů číselných soustav můžeme mixovat zápis čísel libovolně včetně postfixové inženýrské notace. Následující řádek:

1,2M+125k/2,5E-4*0FA5h/1011011100b

bude v režimu dekadické soustavy správně vyhodnocen, neboť interně probíhá ve všech režimech výpočet dekadicky, a to v plovoucí řádové čárce. Je-li aktivní jiná než dekadická číselná soustava, je při výstupu na displej desetinná část odříznuta.

Poznámka:	Je nutno mít na zřeteli, že výpočty v plovoucí nebo pevné řádové čárce je možné provádět pouze v dekadické číselné soustavě. Z toho důvodu je provádění např. statistické nebo regresní analýzy smysluplné jen v dekadické soustavě.

Kombinace postfixu inženýrské notace a symbolu imaginární jednotky

V režimu komplexních čísel je možné dále mixování postfixů inženýrské notace a symbolu imaginární jednotky. Tak například zápis

1,2M+125ki

je platný zápis komplexního čísla a bude lexikálním analyzátorem také korektně vyhodnocen. Symbol imaginární jednotky však musí být uveden vždy jako poslední.

Upozornění:	Ve verzi 2.0 došlo k částečné změně interpretace postfixu "o" pro oktalovou číselnou soustavu, a to v režimu komplexních čísel, kde postfix "o" má význam symbolu úhlové jednotky ve stupních.

Konverze číselných formátů

Občas potřebujeme převádět číselné hodnoty zapsané v jedné číselné soustavě do soustavy jiné. Konverzi číselného formátu provedeme nejrychleji tak, že do vstupního pole Výraz zapíšeme číslo včetně postfixu číselné soustavy a přepneme formát zobrazení čísel na displeji do požadovaného tvaru.


Konstanty

Konstanta pi

Program EMcalc obsahuje konstantu pi (Ludolfovo číslo): pi = 3,14159265358979. Jelikož se jedná o číslo iracionální, dochází (tak jako u všech iracionálních čísel) při matematických operacích s touto konstantou k zaokrouhlovacím chybám, které mohou významně narůstat s rostoucím počtem těchto operací. Z toho důvodu je argument goniometrických funkcí omezen na rozsah (-pi*1E18, +pi*1E18).

Pro vkládání konstanty pi lze použít tlačítko [image] ovládacího panelu hlavního okna aplikace.

Konstanta e

EMcalc podporuje od verze 2.0 také konstantu e (Eulerovo číslo): e= 2,71828182845905.. (základ přirozených logaritmů). Tato hodnota je ekvivalentní návratové hodnotě funkce exp(1).

Poznámka:	EMcalc podporuje i nadále implicitní proměnnou E. Pro označení proměnné E musí být použito písmeno velké abecedy. Je to jediná výjimka z pravidla pro označování proměnných.

Fyzikální konstanty

V programu EMcalc je zabudována řada fyzikálních konstant, které lze do výrazu zadat výběrem z nabídky. Seznam konstant se vyvolá tlačítkem [image], jak ukazuje následující obrázek:

Opakované vkládání konstant

K opakovanému vkládání vybrané konstanty slouží tlačítko [image] (přičemž je třeba přidržet klávesu Shift), které ve své bublinové nápovědě uchovává název, jednotky a číselnou hodnotu naposledy vybrané konstanty.

Jiný způsob výběru konstanty

Existuje ještě další způsob výběru konstanty ze seznamu. Všimněme si, že požadovanou konstantu lze vybrat stiskem podtrženého znaku. Při znalosti rozložení konstant v tabulce lze do vstupního řádku zapsat sekvenci znaků # C, kde C představuje podtržený znak v seznamu konstant.

Uživatelské konstanty

V programu EMcalc je od verze 2.2 k dispozici správa uživatelských konstant prostřednictvím formuláře Uživatelské konstanty, který se vyvolá tlačítkem [image] nebo pomocí nabídky menu Okno/Uživatelské konstanty.

Formulář obsahuje následující sloupce:

Název	Názvy uživatelských konstant slouží jen ke zpřehlednění seznamu konstant a nelze je ve výrazech použít.

Kláv. zkratka	Klávesové zkratky urychlují přístup k uživatelským konstantám a slouží ke vložení hodnoty konstanty do výrazu. Jako klávesové zkratky se doporučuje použít funkční tlačítka F2 až F12 s možností jejich kombinace s řídícími klávesami Ctrl/Alt/Shift.

Hodnota	Ve sloupci Hodnota může být uvedena číselná hodnota nebo výraz (např. 4*pi*1E-7), který lexikální analyzátor vyhodnotí až při vyhodnocení celého výrazu, do něhož byla konstanta vložena.

Poznámka:	Původní funkce tlačítka "const" funguje, pokud je přidržena klávesa Shift.


Proměnné

Tvorba názvu proměnné

Množina lexikálních prvků používaná k tvorbě názvu proměnné sestává ze znaků {A..Z, a..z, 0..9, podtržítko}. Nerozlišují se velká a malá písmena, tzn. Uab, UAB, uAB jsou identické názvy jedné a téže proměnné. Název proměnné nesmí obsahovat prázdný znak (mezeru) a nesmí začínat číslicí.

Pokud se název proměnné v některém z osmi vstupních polí opakuje, program ohlásí chybu duplicita proměnné. V tom případě je třeba přejmenovat některou z opakujících se proměnných.

POZOR 	Kontrola duplicity proměnných ve vstupních polích Výraz se neprovádí u úloh, jejichž běh je řízen příkazovým interpretem.

Upozornění:	Výjimku z pravidla pro značení proměnných tvoří identifikátor implicitní proměnné E, který musí být zapsán vždy velkým písmenem. EMcalc totiž od verze 2.0 podporuje také konstantu e (Eulerovo číslo): e= 2,71828182845905.. (základ přirozených logaritmů).

Definiční obor komplexních proměnných

Od verze 2.0 programu EMcalc je pro proměnné rozšířen definiční obor reálných čísel na obor čísel komplexních. Komplexní proměnné mají složku reálnou a složku imaginární.

Jelikož jsou čísla v plovoucí řádové čárce v programu EMcalc realizována datovým typem extended (rozšířená přesnost) a každá komplexní proměnná alokuje 20 Byte paměťového prostoru, platí že

definičním oborem komplexních proměnných je množina komplexních čísel, pro jejichž absolutní hodnotu reálné a imaginární složky platí:

abs(re(z)) < 1.1E4932

abs(im(z)) < 1.1E4932

Pravidla pro psaní komplexních čísel naleznete pod heslem Formát čísel.

Práce s proměnnými

V programu EMcalc je k dispozici osm předdefinovaných proměnných X, Y, A, B, C, D, E, F. Pro práci s proměnnými je k dispozici osm vstupních polí, které slouží k přiřazení hodnoty proměnným.

První dvě pole vlevém sloupci nahoře, která implicitně obsahují proměnné X a Y, mají kromě toho ještě specifické určení - slouží k definování iteračního cyklu při generování datové řady a při generování parametrické soustavy datových řad.

Definovat však lze libovolný počet proměnných, které buďto nahradí implicitní proměnné nebo rozšíří seznam registrovaných proměnných, a to v závislosti na způsobu jejich registrace.

Poznámka:	Aktuální seznam registrovaných proměnných lze zobrazit pomocí formuláře Seznam proměnných (viz obrázek níže). Ten lze vyvolat nabídkou menu Proměnné/Seznam nebo vyvoláním plovoucí nápovědy k tlačítku [image].

Registrace proměnných

Aby mohly být uživatelské proměnné používány, musí se tyto nejdříve registrovat. Registraci proměnných lze provést několika způsoby.

Používáme-li pro práci s proměnnými vstupní pole v hlavním aplikačním oknu, použijeme příkaz menu Proměnné/Změnit název. Do vstupních polí pro proměnné jsou tímto přeneseny jejich názvy, které lze editovat.

Změna názvu proměnných

Změny názvů proměnných ve vstupních polích se provádí v režimu změny názvů proměnných, který se aktivuje některým z následujících způsobů:

•	tlačítko panelu nástrojů [image] (Změnit názvy proměnných),

•	nabídka menu Proměnné/Změnit názvy,

•	okénka s názvy proměnných,

Patrně nejčastější způsob aktivace režimu změny názvu proměnných bude klepnutí na políčko s názvem proměnné. Tato políčka fungují jako tlačítka, která zapínají a vypínají režim změny názvu proměnné. Že se jedná o aktivní prvek je zdůrazněno kurzorem ve tvaru ruky. Stisknutí tlačítka se indikuje jednak změnou jasu pozadí, jednak poněkud pozměněným tvarem kurzoru, jak ukazují následující dva obrázky:

Je-li režim změny názvu proměnné aktivní, nelze provádět výpočty, a proto je celá řada ovládacích prvků zablokovaná:

Takto lze provést změny názvů ve všech polích najednou a vrátit se do normálního režimu potvrzením pomocí tlačítka Enter nebo klávesou Enter nebo opětovným klepnutím na políčko s názvem proměnné nebo vymáčknutím tlačítka [image] v panelu nástrojů. Tímto se nové proměnné zaregistrují a původní proměnné, které byly předtím ve vstupních polích již nadále nejsou k dispozici.

Změnu názvu proměnné v rámci jednoho z osmi vstupních poli lze provést také zápisem deklarace proměnné do vstupního pole Výraz následující syntaxí:

@x=Uabc

kde x zastupuje jeden z osmi vstupních polí. X může nabývat hodnot z množiny znaků {X,Y,A,B,C,D,E,F,1,2,3,4,5,6,7,8}. Písmeno X nebo číslice 1 představuje odkaz na první pole, písmeno Y nebo číslice 2 pak odkaz na druhé pole, písmeno A nebo číslice 3 odkaz na třetí pole atd.

Poznámka:	Tento způsob deklarace proměnné je velmi užitečný při programování úloh v jazyce BASIC, který je v programu EMcalc implementován.

Pokud potřebujeme další proměnnou, pro kterou už není k dispozici volné vstupní pole, lze tuto vytvořit a pracovat s ní na pozadí (v paměti). Za tím účelem slouží příkaz defvar. Proměnnou Uabc pak registrujeme takto:

defvar Uabc

Přiřazení číselné hodnoty takto zaregistrované proměnné lze provést v poli Výraz pomocí rovnítka:

Uabc=400

Při práci v minioknu, kdy nejsou vstupní pole pro proměnné k dispozici,  je třeba pracovat právě s těmito dvěma příkazy.

Automatická registrace proměnných

Elegantnější způsob registrace proměnných je ten, že tuto starost přenecháte programu EMcalc. Musí ovšem být zaškrtnuta nabídka menu Proměnné/Automaticky registrovat (implicitní nastavení). Pak stačí napsat text matematické formule a při vyhodnocení výrazu je zobrazen seznam nově zaregistrovaných proměnných. Přitom máme možnost potvrdit jejich umístění do vstupních polí pro jejich snadnější používání.

Není-li nabídka menu Proměnné/Automaticky registrovat zaškrtnuta, je použití neregistrované proměnné oznámeno hlášením "Chyba při analýze výrazu".

Přiřazení hodnoty proměnné

Přiřazení číselné hodnoty proměnné lze provést různými způsoby. Patrně nejobvyklejší bude zápis číselné hodnoty do vstupního pole pro proměnné.

Další možností přiřazení hodnoty proměnné je napsání přiřazovacího příkazu přímo do vstupního pole Výraz, např.

x=5

y=arcsin(pi/4)

Můžeme tak v jednom kroku přiřadit proměnné nejen číselnou hodnotu ale i výsledek složitějšího výrazu.

Výrazy ve vstupních polích pro proměnné

Do vstupního pole proměnné lze zapisovat nejen číselné hodnoty ale i výrazy, podobně jako se zapisují výrazy ve vstupním poli Výraz. S touto možností programu EMcalc je ovšem třeba zacházet obezřetně, neboť zde může být příčina záludných chyb.

Chyby při používání výrazů v polích pro proměnné

•	Automatická registrace proměnných - je-li zapnuta - jsou nové identifikátory, které vyhovují lexikální stavbou názvu proměnných (tím ale i možné překlepy) automaticky zaregistrovány. Sledujte proto pečlivě seznam nově zaregistrovaných proměnných.

•	Zvláštní pozornost je nutno věnovat použití názvu proměnné ve výrazu pro hodnotu proměnné. Program tuto situaci nevylučuje ale je nutno pamatovat na skutečnost, že pořadí, v jakém jsou výrazy ve vstupních polích proměnných vyhodnocovány, je následující: X,Y,A,B,C,D,E,F s tím, že obsahují-li pole s proměnnou X případně i s proměnnou Y rozsah a krok jako parametry datové řady, jsou tyto inicializovány v daném pořadí jako poslední.

Výpis proměnných

Pro výpis obsahu registrovaných proměnných a jejich aktuálních hodnot stačí umístit kurzor nad tlačítko [image] a v bublinové nápovědě se na chvíli zobrazí seznam, jak ukazuje obrázek:

K průběžnému sledování stavu proměnných slouží okno Seznam proměnných, které se otevře klepnutím myší na tlačítko [image] nebo pomocí nabídky menu Okno/Seznam proměnných.

Formulář Seznam proměnných byl rozšířen o sloupce Jednotka a Popis. Vyplnění těchto sloupců se doporučuje v případě, že danou úlohu hodláte uložit do knihovny výrazů. Při vyvolání úlohy z knihovny výrazů jsou tyto doprovodné informace přeneseny jednak do okna Seznam proměnných, jednak jsou k dispozici ve formě bublinové nápovědy políček s názvy proměnných.

Na následujícím obrázku je zobrazeno kontextové menu Seznamu proměnných sloužící pro editaci hodnot proměnných. Menu se vyvolá klepnutím pravého tlačítka myši na tabulku hodnot proměnných nebo klávesovou zkratkou Shift+F10.

Proměnná Ans

K seznamu implicitních proměnných můžeme dále započítat i proměnnou Ans (Answer Register), která obsahuje výsledek předchozího výpočtu. Název proměnná Ans smí být použit v libovolném výrazu, kde zastupuje číselnou hodnotu výsledku předchozího výpočtu.

Vynulování proměnných

K vynulování všech proměnných (nikoliv k jejich odstranění) slouží tlačítko [image] nebo příkaz menu Proměnné/Vynulovat.

Zrušení proměnných

Pro zrušení všech uživatelsky definovaných proměnných slouží tlačítko [image]. Po provedení resetu jsou vstupním polím pro proměnné přiřazeny implicitní názvy proměnných (X, Y, A, B, C, D, E, F) a všechny jsou vynulovány.

Pro zrušení jednotlivých uživatelsky definovaných proměnných slouží klávesová zkratka Ctrl+Del přístupná fe formuláři Seznam proměnných nebo nabídka Odstranit, která se vyvolá z kontextového menu v seznamu proměnných pomocí pravého tlačítka myši.

Nachází-li se odstraňovaná proměnná v některém z osmi vstupních polí proměnných v hlavním aplikačním oknu, je tato nahrazena implicitní proměnnou A,B,C,D,E,F,X,Y příslušnou ke vstupnímu řádku. Tato změna se ihned zpětně promítne do formuláře Seznam proměnných. Z toho vyplývá, že implicitní proměnné A,B,C,D,E,F,X,Y ve vstupních polích proměnných hlavního aplikačního okna nelze zrušit.

Poznámka:	Vytváření a rušení proměnných v programovaných úlohách, jejichž běh je řízen příkazovým interpretem, je popsáno v kapitole Skladba úlohy.


Operátory

Aritmetické operátory

Priorita aritmetických operátorů

Aritmetické operátory programu EMcalc seřazené podle priority jsou následující:

-	...unární mínus  (unární plus se nepoužívá)

^	...umocnění

*	...násobení

/	...dělení

+	...sčítání

 -	...odčítání

Celočíselné operátory

Program EMcalc podporuje dva celočíselné operátory:

div	...celočíselné dělení,

\	...celočíselné dělení (synonymum k operátoru DIV),

mod	...zbytek celočíselného dělení.

Příklad:	10 div 3 = 3

10 mod 3 = 1

Dělení nulou:	Častou chybou, která se vyskytuje při řešení matematických výrazů je dělení nulou. Nejčastější příčinou bude patrně zapomenutá inicializace proměnné, vyskytující se ve jmenovateli výrazu (za lomítkem).

Komplexní aritmetika

Program EMcalc zavedl ve verzi 2.0 podporu komplexních čísel, komplexních proměnných, komplexních funkcí a komplexních operátorů. Jelikož veškeré implementované aritmetické operátory dovedou nyní pracovat s čísly, proměnnými, výrazy a funkcemi, které jsou definovány na množině komplexních čísel, hovoříme o podpoře komplexní aritmetiky.

Relační operátory

Relační operátory v programu EMcalc jsou podporovány v rámci programování úloh, které jsou řízené příkazovým interpretem BASIC a slouží k vyhodnocování logických výrazů a podmínek větvení programu. Podporovány jsou všechny relační operátory:

=	...rovnost operandů

<>	...nerovnost operandů

<	...je menší

>	...je větší

<=	...je menší nebo rovno

>=	...je větší nebo rovno

Příklad:

IF x < 5 THEN continue ELSE end

Logické operátory

V programovacích jazycích se běžně používají logické operátory not, and, or, xor pro vytváření složitých konstrukcí relačních podmínek. Některé ekvivalentní konstrukce lze vytvořit náhradním způsobem, např. pomocí zanořeného bloku. Současná verze programu EMcalc nepodporuje logické operátory. Je však možné, že v některé příští verzi programu EMcalc podporovány budou.


Vektory proměnných

Ve verzi 2.0 programu EMcalc byla implementována podpora vektorů proměnných včetně matematických operací nad množinami jejich prvků. Operandy algebraických výrazů a argumenty funkcí mohou být nejen skaláry ale i vektory (jednorozměrná pole).

Zdroje vektorů proměnných

Vektory proměnných jsou v podstatě datové řady získané některým z následujících způsobů:

•	datové řady generované programem EMcalc,

•	data importovaná z diskového souboru nebo statistiky.

Následující obrázek ukazuje kontextové menu polí s názvy proměnných:

Při výpočtu datové řady vznikne vektor proměnné za těchto předpokladů:

a)	do vstupního pole Výraz zapíšeme rovnici (s přiřazením hodnoty výrazu proměnné, která je uvedena na levé straně rovnítka),

b)	v oknu Nastavení na kartě Proměnné je vybráno přepínací tlačítko Proměnné obsloužit jako vektory.

Identifikace vektorů proměnných

Názvy proměnných, které jsou vektory, jsou zvýrazněny tučným písmem, a to jak v hlavním oknu aplikace, tak i v oknu Seznam proměnných. Plovoucí nápověda polí proměnných v případě, že proměnná je vektor, zobrazí počet prvků a hodnoty obou krajních prvků.

Indexace prvků vektorů proměnných

Program EMcalc ve stávající verzi má implicitní obsluhu jednotlivých prvků vektoru proměnných. V rámci vstupních polí pro zadávání výrazů neumožňuje přístup k jednotlivým prvkům explicitní indexací. Hodnoty prvků jsou však dostupné v tabulkové i grafické podobě a lze je dle potřeby z programu EMcalc exportovat k dalšímu zpracování.

Práce s vektory proměnných

Syntaxe zápisu výrazu do vstupního pole Výraz je v případě skalárů i vektorů naprosto shodná. To značně usnadňuje zápis v případě, že je třeba všechny prvky datové řady modifikovat prostřednictvím určité funkce či výrazu.

Příklad:	Do proměnných A, B byly importovány průběhy jistých fyzikálních veličin. Má se spočítat a vykreslit diagram průběhu veličiny C, jejíž prvky tvoří kvadratický průměr hodnot prvků A, B.

Do vstupního pole Výraz zapíšeme rovnici C = Sqrt(A*A+B*B) a stiskneme Enter. Program automaticky vygeneruje vektor C, jehož prvky byly spočítány podle uvedené rovnice. Přitom naprosto nebylo nutné zadávat meze a krok, jak se to pro generování datové řady jinak požaduje


Funkce

Teorie funkcí komplexní proměnné, zejména teorie analytických funkcí, tvoří jednu ze základních částí matematické analýzy.

Rozdělení funkcí

Matematické funkce dělíme na dvě základní skupiny:

algebraické	např.  y = x^2,    y = x * ln 5,   y = (5*x^3-3) / (2*x^2+1)

transcendentní	např.  y = sin x,  y = a^x,        y = ln x

Algebraické funkce se dále dělí na dvě skupiny:

racionální	s konečným počtem čtyř základních racionálních operací: sčítání, odčítání, násobení a dělení,

iracionální	kde analytický výraz obsahuje mocninu argumentu x s lomeným racionálním exponentem.

Racionální funkce se dále dělí na dvě skupiny:

celistvé racionální funkce neboli polynomy,

lomené racionální funkce dané podílem dvou polynomů.

Transcendentní funkce se dělí na dvě skupiny:

nižší  (např. goniometrické)

vyšší.

V programu EMcalc jsou implementovány tyto transcendentní funkce:

•	algebraické,

•	goniometrické,

•	cyklometrické,

•	hyperbolické,

•	hyperbolometrické,

•	exponenciální,

•	logaritmické,

•	konverzní,

Ke každé transcendentní funkci y=f(x) je k dispozici příslušná funkce inverzní x=g(y). Grafy inverzních funkcí jsou s grafy příslušných funkcí původních souměrné podle osy I. a III. kvadrantu.

K dispozici jsou dále pak funkce bitově orientované, které jsou určeny spíše pro potřebu programátorů.

Zápis funkcí

Matematické funkce v programu EMcalc se zapisují názvem funkce (identifikátorem) následovaným argumentem funkce uzavřeným do závorek.

Funkce jsou buďto jednoargumentové nebo dvouargumentové. Argumenty se navzájem oddělují středníkem.

Poznámka:	Argumenty veškerých funkcí je v programu EMcalc nutno uzavřít do závorkového páru. Pro usnadnění zápisu výrazů je vstup z klávesnice ošetřen tak, že stisk mezerníku vkládá závorkový pár a umísťuje kurzor dovnitř závorek.


Algebraické funkce

Algebraické funkce se skládají z operandů a operátorů. Pro zápis algebraické funkce lze použít základní čtyři racionální operátory +, -, *, /  pro operace sčítání, odčítání, násobení a dělení. Jako operátor umocnění se používá znak ^ (stříška). Zápis znaku * pro operaci násobení je povinný. Na místě zlomkové čáry se používá znak / (lomítko) a je-li to nutné příslušný závorkový pár pro mnohočlen v čitateli případně ve jmenovateli.

V programu EMcalc jsou implementovány tyto funkce:

Algebraické funkce

sqr (x)	∀ x ∈ {R}	...druhá mocnina

sqrt (x)	∀ x >= 0	...druhá odmocnina

abs (x)	∀ x ∈ {R}	...absolutní hodnota

fact (x)	∀ x ∈ {No}	...faktoriál

sum (x)	∀ x ∈ {R}	...součet funkčních hodnot - jen u datových řad!

sqrsum (x)	∀ x ∈ {R}	...součet kvadrátů funkčních hodnot - jen u datových řad!

max (x,y)	∀ x,y ∈ {R}	...větší ze dvou hodnot

min (x,y)	∀ x,y ∈ {R}	...menší ze dvou hodnot

intpower (x,y)	∀ y ∈ {R},

∀ x ∈ {Z}	...umocnění s celočíselným exponentem (má proti funkci power optimalizovaný kód)

Neurčit výraz

Neurčitý výraz je výraz, který nelze vypočíst známými metodami. K takovým výrazům patří např. výraz typu 0^0 (základ i exponent jsou rovny nule) nebo výraz typu 0^x, když je exponent záporný nebo když je základ záporný a exponent necelé číslo (vede na logaritmus záporného čísla, který není definován). Nastane-li u funkcí power a intpower takový případ, je hlášena chyba.

Speciální funkce pro obor reálných čísel

sign (x)	∀ x ∈ {R}	...signum (znaménko)

f(x)=-1	pro x<0

f(x)= 0	pro x=0

f(x)= 1	pro x>0

heaviside (x)	∀ x ∈ {R}	...význam funkce

f(x)=0	pro x< 0

f(x)=1	pro x>=0

zero (x)	∀ x ∈ {R}	...význam funkce

f(x)=0	pro x=0

f(x)=1	pro x<>0

random (x)	∀ x ∈ {R}	....generuje náhodné číslo z intervalu (0,x)

Poznámka:	Argument funkce faktoriál je z důvodu omezeného rozsahu implementace reálných čísel omezen na interval <0, 1754>.

Upozornění:	Funkce sum(x) a sqrsum(x) neprovádí součet hodnot (resp. kvadrátů hodnot) argumentů při volání funkce, jak je běžné u ostatních programů. Tato funkce je však užitečná u výpočtů nekonečných řad.


Goniometrické funkce

Goniometrické funkce patří do skupiny nižších transcendentních funkcí. V programu EMcalc jsou implementovány tyto funkce:

sin (x)	...sinus	∀ x ∈ {R}

cos (x)	...kosinus	∀ x ∈ {R}

tg (x)	...tangens	∀ x ∈ {x∈R  x≠(2*k+1)*pi/2; k∈Ζ}

cotg (x)	...kotangens	∀ x ∈ {x∈R  x≠(k*pi; k∈Ζ}

Pro další, méně často používané goniometrické funkce, lze použít následující vztahy:

sec (x) = 1 / cos(x)	...sekans	∀ x ∈ {x∈R  x≠(2*k+1)*pi/2; k∈Ζ}

cosec (x) = 1/ sin(x)	...kosekans	∀ x ∈ {x∈R  x≠(k*pi; k∈Ζ}

Goniometrické funkce jsou funkcemi periodickými s periodou uvedenou v definičním oboru příslušné funkce.

Množina čísel reálných v definičním oboru goniometrických funkcí je v programu EMcalc zúžena na rozsah (-pi*1E18, pi*1E18) z důvodu zaokrouhlovacích chyb, které mimo tento interval začínají významně narůstat z důvodu implementace reálných čísel na konečný počet platných míst.


Cyklometrické funkce

Cyklometrickými funkcemi nazýváme inverzní funkce k funkcím goniometrickým. Protože goniometrické funkce jsou ryze monotónní jen na určitých intervalech, existují inverzní funkce jen na těchto intervalech.

arkussinus

f(x) = { y= arcsin (x),	x ∈ <−1, 1>,  y ∈ <−π/2, π/2>}

Funkce arkussinus je inverzní funkcí k funkci sinus na intervalu <−π/2, π/2>

arkuskosinus

f(x) = {y= arccos (x),	x ∈ <−1, 1>,  y ∈ <0, π>}

Funkce arkuskosinus je inverzní funkcí k funkci kosinus na intervalu <0, π>

arkustangens

f(x) = {y= arctg (x),	x ∈ R,  y ∈ (−π/2, π/2)}

Funkce arkustangens je inverzní funkcí k funkci tangens na intervalu <−π/2, π/2>

arkuskotangens

f(x) = {y= arccotg (x),	x ∈ R,  y ∈ (0, π)}

Funkce arkuskotangens je inverzní funkcí k funkci kotangens na intervalu <−π/2, π/2>

Funkce arctg2

Speciální cyklometrickou funkcí je funkce arctg2 (čtyřkvadrantový arkustangens). Je to inverzní funkce k funkci tg na intervalu <-p, p>. Funkce arctg2 počítá hodnotu funkce arctg(y/x), a vrací úhel ve správném kvadrantu. Hodnoty x a y musí být mezi –2^64 a 2^64. Hodnota x dále nesmí být rovna nule.

f(x,y) = {f(x,y)= arctg2 (y,x),  x ∈ R,  y ∈ R, f(x,y) ∈ (−π, π)}

Funkce f(x,y)=arg(y,x) a f(x,y)=phase(x,y) jsou obě vlastně aliasem funkce f(x,y)=arctg2(y,x). Mají shodný význam jako funkce arctg2 a slouží spolu s funkcí f(x,y)=radius(x,y) resp. f(x,y)=hypot(x,y) pro konverzi ortogonálních souřadnic do souřadnic polárních (viz funkce Konverzní).


Hyperbolické funkce

Definice

Hyperbolické funkce jsou definovány pomocí funkcí exponenciálních se základem e=2,718281828459... podle těchto definičních vzorců:

sinh (x)	= (exp(x) - exp(-x)) / 2

cosh (x)	= (exp(x) + exp(-x)) / 2

tgh (x)	= sinh(x) / cosh(x)

cotgh (x)	= cosh(x) / sinh(x)

Definiční obor

hyperbolický sinus

f(x) = {y= sinh (x),	x ∈ R,  y ∈ R}

hyperbolický kosinus

f(x) = {y= cosh (x),	x ∈ R,  y ∈ <1, +infinity)}

hyperbolický tangens

f(x) = {y= tgh (x),	x ∈ R,  y ∈ (-1, 1)}

hyperbolický kotangens

f(x) = {y= cotgh (x),	x ∈ R \ {0},  y ∈ (-infinity, -1) ∪ (1, +infinity)}

Poznámka:	Hyperbolické funkce mají mnoho vlastností, které připomínají funkce goniometrické. Vzhledem k tomu, že platí vztah cosh^2(t) - sinh^2(t) = 1, představují rovnice

x = cosh(t)

y = sinh(t)	∀ t ∈ {-infinity, +infinity}

parametrické rovnice rovnoosé hyperboly X^2 - y^2 = 1. Odtud také pochází název této skupiny funkcí - hyperbolické funkce.


Hyperbolometrické funkce

Hyperbolometrickými funkcemi nazýváme inverzní funkce k příslušným funkcím hyperbolickým.

argument hyperbolického sinu

f(x) = {y= argsinh (x),	x ∈ R,  y ∈ R}

argument hyperbolického kosinu

f(x) = {y= argcosh (x),	x ∈ <1, +infinity),  y ∈ <0, +infinity)}

argument hyperbolického tangens

f(x) = {y= argtgh (x),	x ∈ (-1, 1),  y ∈ R}

argument hyperbolického kotangens

f(x) = {y= argcotgh (x),	x ∈ (-infinity, -1) ) ∪ (1, +infinity), y ∈ R \ {0}}


Exponenciální funkce

Exponenciální funkce patří do skupiny funkcí transcendentních. Obecný tvar exponenciální funkce zní:

f(x) = a^x,  (a>0)

Podle hodnoty základu a jsou v programu EMcalc implementovány tyto exponenciální funkce

exp (x)	...základem je číslo e=2,718281828459...

exp10 (x)	...dekadický základ

a^x	...obecný základ a>0

Definičním oborem exponenciálních funkcí jsou všechna x z oboru reálných čísel. Program EMcalc umožňuje dále vyčíslit exponenciální funkci f(x) = a^x pro základ rovný zápornému celému číslu.

V programu EMcalc jsou implementovány další dvě exponenciální funkce

power (y,x)	...koresponduje funkci f(x) = a^x pro neceločíselný základ a<>0

intpower (y,x)	...koresponduje funkci f(x) = a^x pro celočíselný základ a<>0 (kód je optimalizován)

Poznámka:	Pro snadnější zápis znaku umocnění ^ je předdefinována klávesová sekvence **. Stiskneme-li dvakrát po sobě znak pro násobení, je tato sekvence nahrazena znakem pro umocnění.


Logaritmické funkce

Logaritmická funkce je inverzní funkcí k odpovídající exponenciální funkci .

Obecný tvar logaritmické funkce zní:

f(x) = loga (x),	(x>0, a>0, a≠1)

Podle hodnoty základu a jsou v programu EMcalc implementovány tyto logaritmické funkce

ln (x)	...základem je číslo e=2,718281828459...

log (x)	...dekadický základ

log2 (x)	...dvojkový základ

logN (N,x)	...obecný základ N


Konverzní funkce

Konverzní funkce jsou rozděleny na dvě hlavní skupiny:

Funkce pro konverzi reálného čísla s desetinnou částí na celočíselný typ

trunc (x)	...funkce vrací celočíselnou část argumentu x odříznutím desetinné části

frac (x)	...funkce vrací desetinnou část argumentu x

ceil (x)	...zaokrouhlení argumentu x na celé číslo směrem nahoru

floor (x)	...zaokrouhlení argumentu x na celé číslo směrem dolů

round (x,y)	...zaokrouhlení argumentu x na požadovaný počet desetinných míst y ∈ <0, 15>

Funkce pro konverzi ortogonálních souřadnic na souřadnice polární

hypot (x,y)	...přepona pravoúhlého trojúhelníku

radius (x,y)	...vzdálenost průvodiče [x,y] od počátku souřadného systému

phase (x,y)	...orientovaný úhel, který svírá průvodič [x,y] s kladnou osou x

Poznámky:	Kladný směr orientovaného úhlu se měří ve směru proti pohybu hodinových ručiček.

Funkce hypot (x,y) a radius (x,y) mají identický význam - vyčíslují velikost přepony pravoúhlého trojúhelníku.

Funkce phase (x,y) a arg (y,x) mají rovněž identický význam totožný s funkcí arctg2 (y,x) a vyčíslují úhel v obloukové míře (argument), který svírá průvodič [x,y] s osou x.


Bitově orientované operace

Bitově orientované funkce představují z důvodu zjednodušení implementace náhradu za bitové operátory používané v programovacích jazycích. Na rozdíl od výrazů s operátory logickými, jsou funkční hodnotou těchto funkcí celočíselné hodnoty. Tyto funkce manipulují s jednotlivými bity použitých operandů. U argumentů těchto funkcí je před vyhodnocením funkční hodnoty na oba operandy aplikována funkce trunc (je odstraněna desetinná část číselné hodnoty operandů).

not (x)	...bitová negace

and (x,y)	...bitové a

or (x,y)	...bitové nebo

nor (x,y)	...negace bitového nebo

xor (x,y)	...bitový exkluzivní součet

shl (x,y)	...bitový posun doleva

shr (x,y)	...bitový posun doprava

Tyto funkce jsou zamýšleny spíše jako pomůcka pro programování.


Funkce komplexní proměnné

Uplatnění funkcí komplexní proměnné

Funkce komplexní proměnné mají důležitá uplatnění ve fyzikálních i technických vědách. V teorii elektrických obvodů, v hydromechanice i v aerodynamice, v nauce o pružnosti a také v teorii automatické regulace nacházejí tyto funkce stále větší a širší uplatnění.

Proto ve verzi 2.0 programu EMcalc byla implementována podpora komplexních čísel včetně matematických operací nad množinami komplexních čísel. Operandy algebraických výrazů a argumenty funkcí mohou být čísla reálná i čísla komplexní.

Definice funkce komplexní proměnné

Nechť {D} ∈ {C} je množina komplexních čísel. Jestliže každému z=x+iy ∈ {D} je přiřazeno komplexní číslo w=u+iv ∈ {D}, řekneme, že na množině {D} je definována funkce komplexní proměnné.

Zápis funkce komplexní proměnné

w = u+iv = f(z) = u(x,y) + iv(x,y)

kde	u = u(x,y) = re f(z)	...reálná část funkční hodnoty

v = v(x,y) = im f(z)	...imaginární část funkční hodnoty

Podstatná je skutečnost, že jak argument funkce, tak i funkční hodnota (návratová hodnota funkce) jsou komplexními čísly.

Komplexní funkce podporované programem EMcalc

Od verze 2.0 podporuje program EMcalc prakticky stejné množiny funkcí, jako tomu bylo u dřívějších verzí pro obor reálných čísel. Jsou to funkce

•	algebraické,

•	goniometrické,

•	cyklometrické,

•	hyperbolické,

•	hyperbolometrické,

•	exponenciální,

•	logaritmické,

•	konverzní.

Funkce conjug

conjug(z) = re(z) - im(z)	...hodnota komplexně sdruženého čísla

Kromě komplexních funkcí uvedených v tomto přehledu je k dispozici ještě funkce conjug, jejíž funkční hodnotou je číslo komplexně sdružené k argumentu funkce. Čísla komplexně sdružená mají shodnou velikost avšak liší se znaménkem imaginární složky.

Konverzní funkce pro převod komplexního čísla na reálné číslo

abs (z)	...absolutní hodnota komplexního čísla |z|=sqrt(sqr(re(z))+sqr(im(z)))

arg (z)	...argument komplexního čísla z=re(z)+i*im(z)

re (z)	...reálná složka komplexního čísla re(z)

im (z)	...imaginární složka komplexního čísla im(z)

Graf funkce komplexní proměnné v Gaussově komplexní rovině

Program EMcalc podporuje od verze 2.0 rovněž generování datových řad funkcí komplexní proměnné a nekonečných řad FKP. Obrazy funkčních hodnot datových řad FKP generovaných programem tvoří rovinné křivky, které EMcalc zobrazuje různým způsobem.

Kartézské grafy

abs (z) = f(t)	...absolutní hodnota komplexního čísla z jako funkce reálného parametru t

arg (z) = f(t)	...argument komplexního čísla z jako funkce reálného parametru t

re (z) = f(t)	...reálná složka komplexního čísla z jako funkce reálného parametru t

im (z) = f(t)	...imaginární složka komplexního čísla z jako funkce reálného parametru t

Grafy v Gaussově komplexní rovině

Grafy v Gaussově komplexní rovině se zobrazují v ortonormální souřadné soustavě (na reálnou a imaginární osu je aplikováno stejné měřítko zobrazení, takže se např. kružnice zobrazí nezploštělá).

Na vodorovnou osu se vynáší reálné složky komplexních čísel, na svislou osu pak imaginární složky komplexních čísel.


Přesnost výpočtů

Každá dílčí matematická operace zajišťuje přesnost výsledku výpočtu minimálně na 18 platných míst. Při rostoucím počtu operací s reálnými čísly (především pak iracionálními čísly) však dochází vlivem zaokrouhlování na 19. místě k hromadění chyb. To je třeba mít na zřeteli zejména při práci s konstantou pi, kde s přibývajícím počtem operací dochází ke snižování přesnosti výpočtu.

Nastavení zaokrouhlování čísel nemá vliv na přesnost výpočtů, ovlivňuje pouze přesnost zobrazených čísel na displeji.


Jednoduché výpočty

Posloupnost jednoduchých výpočtů používajících pouze algebraické operace se provádí obdobně jako u kapesních kalkulaček. Pokud po vyhodnocení výrazu stiskneme některou z kláves (*), (/), (+), (-), (^), bude údaj na displeji tvořit první operand dané operace. Místo číselné hodnoty se vloží do vstupního pole název proměnné Ans případně číselná hodnota výsledku předchozí operace podle nastavení v nabídce Proměnné/Používat číslo místo Ans.


Výpočet DPH

Pro výpočet DPH (daně z přidané hodnoty) je nutno inicializovat režim výpočtu DPH pomocí tlačítka DPH umístěného na tablu funkčních tlačítek. Levým čtyřem vstupním polím proměnných se přiřadí názvy proměnných dle následujícího obrázku:

Při výpočtu DPH se do vstupního pole Výraz nemusí nic nezapisovat. Vztahy potřebné při výpočtu DPH jsou zabudovány a jsou pevně spřeženy se vstupními poli bezDPH, sazba, DPH, celkem. V závislosti na tom, která hodnota se zadává (které vstupní pole má zaměření pro vstup z klávesnice) se zbývající dvě hodnoty automaticky dopočítají, jakmile je stisknuta klávesa Enter (popřípadě aktivováno tlačítko Enter) a vypočtené hodnoty se zapíší do odpovídajících vstupních polí proměnných. Na displeji se bude zobrazovat hodnota té proměnné, která se bude nacházet ve vstupním poli výraz (implicitně je to DPH).

Pole bezDPH

Zde se zapíše cena bez daně, pokud je výchozí hodnotou výpočtu při dané sazbě DPH.

Pole sazba

Zde se zapíše procentní sazba daně, pokud je výchozí hodnotou výpočtu při dané sazbě DPH.

Rozbalovací seznam sazba obsahuje implicitně dva řádky - hodnotu procentní sazby DPH pro daň základní a daň sníženou. Při zadání jiné hodnoty do vstupního pole sazba se tato dočasně zařadí do rozbalovacího seznamu. Pokud dojde v legislativě ke změně procentní sazby DPH, doporučuje se provést změnu sazeby DPH v dialogovém oknu Nastavení na kartě Funkce.

Pole DPH

Zde se zapíše hodnota daně z přidané hodnoty, pokud je výchozí hodnotou výpočtu při dané sazbě DPH.

Pole celkem

Zde se zapíše cena včetně daně z přidané hodnoty, pokud je výchozí hodnotou výpočtu při dané sazbě DPH.

Zaokrouhlování hodnot

Při výpočtu DPH se provádí zaokrouhlování vypočtených hodnot ceny bezDPH, DPH, a ceny celkem (včetně DPH) dle údajů uvedených na formuláři Nastavení na kartě Funkce ve skupině DPH. Zde lze nastavit zaokrouhlování pro základ DPH (stejná hodnota se použije pro zaokrouhlení částky DPH) a zaokrouhlování ceny celkem včetně DPH (v současné době je legislativou stanoveno 0,50 Kč).

Nastavení sazby DPH

Pro nastavení výše základní a snížené sazby DPH slouží dvě vstupní pole Základní sazba DPH a Snížená sazba DPH na formuláři Nastavení na kartě Funkce. Tyto hodnoty se ukládají do souboru emcalc.ini a při výpočtu DPH se rozbalovací seznam sazba inicializuje těmito dvěma hodnotami.


Používání funkcí

Tablo s funkčními tlačítky

Pro snadné použití nejčastěji používaných matematických funkcí slouží funkční tablo. Pokud obsahuje vstupní řádek číselnou hodnotu, konstantu, proměnnou nebo syntakticky správně zapsaný výraz, provede se po klepnutí na tlačítko funkčního tabla nejprve vyčíslení hodnoty výrazu ve vstupním řádku; tato hodnota pak tvoří argument funkce, která se hned vyčíslí a výsledek zobrazí na displeji.

Vyžaduje-li funkce dva argumenty (např. exponenciální funkce y^x), pak údaj ve vstupním řádku reprezentuje první argument (x) a aktuální údaj na displeji druhý argument (y) funkce.

Pokud se ve vstupním řádku nachází výraz, který nelze vyčíslit, pak klepnutí na funkční tlačítko vloží v místě kurzoru příslušný název funkce včetně závorkového páru. Byl-li nějaký text zvýrazněn, je tento vložením názvu funkce přepsán.

Práce se seznamem funkcí

Jelikož funkční tablo obsahuje pouze nejčastěji používané funkce, je k dispozici úplný, abecedně řazený seznam všech matematických funkcí, který se vyvolá nabídkou menu Funkce/Seznam nebo klepnutím na tlačítko Zobrazit /skrýt seznam funkcí v panelu nástrojů.

Seznam obsahuje řádkovou nápovědu se stručným popisem významu funkcí. V závislosti na režimu insert/eval je po klepnutí na vybranou položku název funkce včetně závorkového páru vložen do výrazu v místě kurzoru nebo v případě režimu eval je výraz vložen jako argument funkce.


Převody jednotek

Pro snadné převádění numerických hodnot mezi různými jednotkami fyzikálních veličin je v programu EMcalc k dispozici dialogové okno Převody jednotek. Toto okno lze vyvolat z nabídky menu Funkce/Převody jednotek nebo z tabla funkčních tlačítek pomocí tlačítka [image].

Dialogové okno Převody jednotek

Ovládání je natolik intuitivní, že se ve výkladu omezíme jen na některé ovládací prvky a speciální rysy toho dialogového okna.

Tlačítko Import slouží k převzetí hodnoty z displeje do pole Vstupní hodnota. Zajímavostí je, že mohou být zadány nejen numerické hodnoty ale i proměnné, konstanty a výrazy.

Tlačítko Export slouží ke vložení výstupní hodnoty do pole Výraz hlavního okna aplikace.

Tlačítko Prohodit na následujícím obrázku slouží k záměně vstupních a výstupních jednotek. Současně s tím je přenesena výstupní hodnota do pole Vstupní hodnota a je provedeno vyhodnocení. Takto lze snadno zkontrolovat správnost provedením zpětného převodu.

Poznámka:	Tlačítko Prohodit mělo původně sloužit k ověření správnosti zpětných převodů. Tato funkce se nám natolik zalíbila, že jsme ji ponechali v programu i po jeho odladění.


Datové řady

Kromě jednoduchých výpočtů resp. vyhodnocení složitějšího výrazu umožňuje program generovat datové řady. Tato možnost programu může být užitečná při zkoumání grafů složitých analytických funkcí nebo při zkoumání rovinných křivek daných parametrickými rovnicemi či rozvojem nekonečné řady a také za účelem vygenerování dat při simulaci procesů apod.

Program EMcalc zavedl ve verzi 2.0 spolu s podporou komplexních čísel, proměnných, výrazů a funkcí také podporu komplexních datových řad (prvky datové řady jsou komplexními čísly).

Dialog Parametry datové řady se vyvolá z panelu nástrojů pomocí tlačítka [image] (Parametry datové řady), jak ukazuje obrázek:

Dialogové okno pro zadání parametrů datové řady

Přejeme-li si vygenerovat datovou řadu rovinné křivky dané parametrickými rovnicemi, zaškrtneme políčko Parametrické rovnice. Do prvních dvou vstupních polí (pro osu x a osu y) pak zapíšeme příslušné parametrické rovnice.

Do vstupních polí pro horní mez, dolní mez a iterační krok lze napsat jak číselnou hodnotu, proměnnou, funkci nebo výraz.

Je-li zaškrtnuto políčko Vytvořit soubor, zpřístupní se další vstupní pole pro zadání parametrů souboru datové řady.

Zaškrtnutí políčka Pořadové číslo určuje, zda bude jako první sloupec souboru tvořit pořadové číslo řádku s daty.

Zaškrtnutí políčka Nezávisle proměnná řídí vytvoření sloupce (případně dvou sloupců) řídící iterační proměnné.

Dále lze volit který znak bude tvořit oddělovač sloupců a oddělovač desetinných míst.

Řetězec znaků v poli Maska slouží k formátování datových sloupců. Lze volit mezi formátem s pevnou řádovou čárkou a semilogaritmickým (tj. exponenciálním) formátem podle toho, zda je v masce použit znak E pro exponent.

Sumátory při výpočtu datových řad

Při výpočtu datových řad jsou dále k dispozici dvě speciální funkce, které slouží pro sumaci výsledných hodnot dílčích iterací a pro sumaci kvadrátů hodnot dílčích iterací.

sum(x)	součet hodnot x

sqrsum(x)	součet kvadrátů hodnot x

pro i = 1..n,  kde n je počet iteračních kroků.

Funkce pracují tak, že k proměnné x předané jako argument funkce přičtou v každém iteračním kroku výslednou hodnotu iteračního výpočtu (u funkce sum) nebo druhou mocninu výsledné hodnoty iteračního výpočtu (u funkce sqrsum).

Tyto sumátory lze použít ve vstupních polích pro proměnné, a to i u nativních funkcí  interpretovaných úloh v oboru reálných i komplexních čísel.

Poznámka:	Při generování datových řad mohou vstupní pole pro proměnné, které nejsou řídícími proměnnými iteračního kroku, obsahovat za číselnou hodnotou inkrement oddělený dvojtečkou, např. 10 : 0,1 (počáteční hodnota 10, inkrement 0,1).

Hodnota proměnné pak bude v každém iteračním cyklu inkrementována o příslušnou hodnotu. Takto lze výpočetní aparát rozšířit např. o různá počítadla a pod.

Chyby při generování datových řad

Přestože jsou výraz i iterační formule syntakticky správně zapsány, může při výpočtu dojít k následujícím chybám:

Iterační krok je roven nule. V tom případě by došlo k nekonečné smyčce. Program přeruší provádění výpočtů a ohlásí chybu.

Vysoký počet iterací. Může k tomu dojít, je-li zadán příliš malý iterační krok. Jelikož iterační výpočty kladou značné nároky na systémové zdroje, může dojít k jejich citelnému snížení, což může vést k rapidnímu poklesu výpočetní rychlosti nebo dokonce ke zhroucení systému. Na vysoký počet iterací program EMcalc předem upozorní.

Dělení nulou. Dojde-li během iteračního výpočtu k dělení nulou, neznamená to nutně ukončení výpočtu. Uživatel je dotázán, zda si přeje pokračovat následujícími iteracemi.

Překročení mezí definičních oborů. Překročen muže být definiční obor rozsahu čísel v rámci číselné soustavy anebo (což je častější případ) může být překročen definiční obor funkce). Program na tuto situaci reaguje stejně jako je uvedeno v předchozím odstavci.

Chyba při zápisu do souboru. V takovém případě je nutno výpočet ukončit a odstranit příčinu chyby.


Nekonečné řady

Některé matematické funkce lze analyticky vyjádřit pomocí rozvoje nekonečné řady. Tato oblast může být zajímavá z hlediska matematické analýzy. Pro vyčíslení funkční hodnoty případně pro vykreslení grafického průběhu takto definované funkce se výborně hodí možnost generování datové řady. Program EMcalc podporuje dvě možnosti práce s nekonečnými řadami.

Použití funkce f(x)=sum(x)

Pomocí iteračního výpočtu s využitím funkce f(x)=sum(x) lze provádět vyčíslení určitého konečného počtu členů rozvoje nekonečné řady.

Funkce f(x)=sum(x) na počátku iteračního výpočtu nejdříve vynuluje sumátor a pak v jednotlivých iteračních krocích provádí sumaci výsledku vyčísleného výrazu.

Tímto způsobem můžeme provést vyčíslení funkční hodnoty pro jednu hodnotu nezávisle proměnné.

Použití iterační formule ve vstupním poli Výraz

Tento způsob práce s nekonečnými řadami je daleko univerzálnější a umožňuje vyčíslení výrazu nejen pro jednu hodnotu nezávisle proměnné ale i pro celou množinu hodnot. Syntaxe je následující:

Výraz ::: NázevIteračníProměnné = PočátečníHodnota .. KonečnáHodnota : Inkrement

Příklad:	Výpočet pilovité klesající periodické funkce:

1/n*sin(n*x):::n=1..1000:1

kde	"n" je řídící proměnná rozvoje nekonečné řady, čím vyšší je konečná hodnota proměnné n, tím přesnější bude tvar křivky.

Ačkoli musí být proměnná "n" registrovanou proměnnou, nemá přiřazení hodnoty proměnné n mimo tuto deklaraci žádný vliv.


Statistická analýza

Formulář k provádění statistické analýzy se otevírá nabídkou menu Soubor/Zadávat řadu nebo nabídkou menu Analýza/Statistická, nebo tlačítkem [image] tabla funkčních tlačítek.

Formulář statistické analýzy

Zdrojem dat pro statistickou analýzu mohou být

•	ručně zadaná data z klávesnice,

•	importovaná data z diskového souboru,

•	vygenerovaná datová řada programem EMcalc.

Práce s formulářem statistiky

Pro práci s daty formuláře statistiky jsou k dispozici jednak ovládací prvky umístěné přímo na formuláři, jednak místní nabídka, která se vyvolá klepnutím pravým tlačítkem myši na datovou mřížku, jak ukazuje obrázek:

Ruční zadávání dat

Vstup do editačního režimu se provádí výběrem položky Editovat z místní nabídky nebo klávesovou zkratkou Ctrl+E. Pro přidání další hodnoty na konci datové řady lze kromě tlačítka Přidat použít kurzorovou klávesu šipka dolů.

Od programové verze 2.0 lze pracovat s jedním nebo současně se dvěma sloupci dat v závislosti na zaškrtnutí políčka x-y:

Data ve sloupci Hodnota mohou být číselné hodnoty nebo matematické výrazy. Podporovány jsou všechny číselné notace implementované v programu. Smysluplné však bude provádění statistické analýzy  jen v rámci dekadické číselné soustavy.

Při zadávání datové řady lze provádět výpočty v hlavním oknu aplikace jako obvykle a výsledek pak tlačítkem Data přidat na konec datové řady. Je-li zadána alespoň jedna hodnota datové řady, zobrazí se popisek tlačítka [image] v modré barvě. Numerické hodnoty z displeje lze přidávat do datové řady i při skrytém formuláři Statistická analýza. Pro rychlé zobrazení nebo skrytí formuláře slouží tlačítko [image] nebo klávesová zkratka Alt+W.

Import datové řady

Pro import dat z diskového souboru slouží tlačítko Import. Šipka napravo od tohoto tlačítka otevírá místní nabídku, kde lze volit i jiný zdroj dat:

Nabídka Soubor dabluje funkci tlačítka Import, data budou importována z externího textového souboru umístěném na disku. Obsahuje-li soubor jeden sloupec dat, zobrazí formulář statistiky rovněž jeden sloupec datové mřížky. Obsahuje-li diskový soubor větší počet sloupců, jsou načteny první dva sloupce dat a zobrazeny dva sloupce datové mřížky. Jako oddělovač sloupců se předpokládá znak z množiny {tabulátor, mezera, středník}.

Nabídku Datová řada EMcalc použijeme, pokud si přejeme importovat datovou řadu generovanou programem EMcalc. V závislosti na tom, zda se jedná o kartézský graf y=f(x) nebo o parametrický graf x,y=f(t) se zobrazí jeden nebo dva sloupce dat korespondující nezávisle proměnné x případně dvojici x-y.

Nabídka Schránka Windows slouží pro import dat ze schránky Windows. Pro formát dat a uspořádání datové mřížky statistiky platí stejná pravidla jako pro diskový soubor.

Export datové řady

Pro export dat do diskového souboru slouží tlačítko Export. Šipka napravo od tohoto tlačítka otevírá místní nabídku, kde lze volit i jiný cíl exportovaných dat:

Nabídka Soubor dabluje funkci tlačítka Export, data budou exportována do externího textového souboru na disk. Ukládá se jeden nebo dva sloupce dat v závislosti na počtu sloupců datové mřížky.

Nabídka Graf EMcalc dabluje funkci tlačítka Graf a použijeme ji, pokud si přejeme vykreslit detailní graf datové řady. V závislosti na počtu sloupců datové mřížky bude vykreslen kartézský graf y=f(x) nebo parametrický graf x,y=f(t).

Nabídka Schránka Windows slouží pro export dat do schránky Windows v jednom nebo ve dvou sloupcích podle počtu sloupců datové mřížky.

Poznámka:	Jak je patrné, má program EMcalc implementované vzájemně reciproční funkce pro přenos dat mezi datovou mřížkou statistiky, diskovým souborem, schránkou Windows a datovou řadou ve formě vektoru proměnné nebo diagramu.

Tlačítko Uložit slouží pro ukládání dat statistické analýzy. Aktivací tlačítka Uložit se zobrazí dialog se zaškrtávacím seznamem pro výběr položek pro uložení do souboru.

Operace drag & drop

Statistické hodnoty v podsvětlených polích pravé části formuláře lze metodou drag & drop kopírovat do vstupních polí aplikace EMcalc, a to jak do libovolné buňky datové mřížky vstupních dat, tak i do libovolného vstupního pole pro proměnné nebo pro výraz v hlavním oknu aplikace.

Ukončení režimu statistické analýzy

Pro ukončení práce s formulářem statistické analýzy slouží systémové tlačítko Zavřít nebo vymáčknutí tlačítka [image] tabla funkčních tlačítek ovládacího panelu hlavního okna aplikace. Data se z tabulky vymažou a formulářem alokovaná paměť se uvolní.

Poznámka:	Ke skrytí formuláře, kdy data zůstávají ve formuláři ponechána, slouží tlačítko [image]  tlačítkového panelu hlavního okna nebo klávesová zkratka Ctrl+F4.


Regresní analýza

Úkolem regresní analýzy je vyšetřit závislost jedné veličiny (X) na jiné veličině (Y) datové řady. Data jsou z hlediska matematické teorie sice náhodné veličiny, jsou však zároveň hodnotami nesoucí informaci o stavu nějakého procesu, objektu, fyzikální, chemické veličiny apod.

Při zkoumání vztahu mezi body Xi a Yi datové řady, získané nejčastěji měřením, hledáme analytické vyjádření matematické funkce, která tuto závislost vystihuje pokud možno co nejpřesněji při splnění kritéria co nejmenších odchylek skutečných hodnot od této funkce.

Regresní rovnice

Regresní rovnicí pak nazveme analytické vyjádření vztahu mezi proměnnými X a Y. Jako kritérium, jehož nejmenší hodnota se hledá je minimální hodnota součtu kvadrátů odchylek skutečných hodnot od analytické funkce. Proto se o této metodě často hovoří jako o metodě nejmenších čtverců.

Lineární regrese přímkou

Obecný tvar regresní rovnice:

y = A + Bx

Koeficienty při lineárním a absolutní členu regresní rovnice jsou dány matematickými vztahy:

Pomocí kovariance Sxy = cov(x,y)

je pak dána míra variability této závislosti.

Regresní funkce v programu EMcalc

Od Verze 2.0 programu Emcalc jsou k dispozici čtyři druhy regresní funkce

lineární	y = A + B x

logaritmická	y = A + B ln x

exponenciální	ln y = A + B x

mocninná	ln y = A + B ln x

Práce s formulářem regresní analýzy

Postup práce je následující: v hlavním oknu na tablu funkčních tlačítek zamáčkneme tlačítko [image]. Zobrazí se prázdný formulář regresní analýzy. Klávesovou zkratkou Ctrl+E nebo poklepáním levým tlačítkem myši na datovou mřížku vstoupíme do editačního režimu. Vyplníme data ve sloupcích x, y nebo provedeme import z diskového souboru případně ze schránky Windows.

Změna velikosti sloupců formuláře

Jelikož má formulář regresní analýzy podobný vzhled a obsahuje většinu shodných ovládacích prvků, platí pro jejich ovládání i obdobná pravidla. Od verze 2.0 programu EMcalc je navíc podporována změna velikosti sloupců tabulky metodou drag & drop přetahováním pomocí myši. Tak lze např. při stejné velikosti formuláře měnit poměr levé a pravé části formuláře a dále pak poměr šířky sloupců pro x-ová data vůči datům y-ovým.

Zaokrouhlování číselných hodnot

Velký počet desetinných míst může být nepřehledný a spíše na překážku. EMcalc proto nabízí možnost zaokrouhlovat jak vstupní data při importu dat, tak i vypočtené hodnoty statistické a regresní analýzy. Slouží k tomu skupina ovládacích prvků, jak ukazuje následující obrázek.

Zaškrtávací políčka aktivují nebo vypínají režim zaokrouhlování zvlášť pro importovaná vstupní data a zvlášť pro vypočtené hodnoty. Dále lze volit minimální počet platných míst v rozmezí 1-15.

Aktualizace vypočtených dat

Pokud se provedou změny ve vstupních datech, dosáhne se pomocí tlačítka Aktualizovat aktualizace vypočtených hodnot. Tlačítko Aktualizovat je třeba použít také v případě, že byl změněn počet platných míst pro zaokrouhlování.

Tabelární výstup regresní analýzy

EMcalc zobrazuje v pravé části formuláře regresní analýzy jednak statistické hodnoty souřadnic x, y, jednak vypočtené hodnoty kovariance, míry variability a rovnici regresní funkce.

Grafický výstup regresní analýzy

Jelikož je grafické zobrazení závislostí bodů x-y datové řady mnohem názornější, umožňuje EMcalc grafické zobrazení spojnicového grafu datové řady a vykresluje do něj zároveň graf optimálně proložené regresní funkce, jak ukazuje následující obrýzek.


Úrokový počet

...připravuje se.


Sekvenční výpočetní úlohy

V technické praxi mívají výpočty rozmanitou složitost a náročnost, jen málo kdy se obejdou bez nutnosti postupného řešení dílčích úkolů. I kdyby bylo k jejich řešení použito kapesních nebo softwarových kalkulátorů, narůstá s rostoucím počtem prováděných operací a komplexností úlohy riziko zavlečení chyb vlivem lidského faktoru.

Program EMcalc proto zavedl ve verzi 2.0 podporu sekvenčního řešení úloh zapsaných jako souvislá posloupnost matematických formulí pomocí textového editoru. EMcalc disponuje řídícím mechanismem pro jejich postupné vykonávání.

Výhodou tohoto přístupu řešení je minimalizace lidských úkonů, které se omezuje prakticky jen na zadání vstupních hodnot (počátečních a okrajových podmínek).

Vytvoření sekvenční úlohy

V zásadě je možné k napsání sekvenční úlohy použít libovolný textový editor, který nevkládá řídící či formátovací znaky do textu. Program EMcalc avšak disponuje integrovaným prostředím s řadou podpůrných prostředků, které jsou přístupné v oknu knihovny výrazů.

Použití knihovny výrazů se nyní již neomezuje jen na archivaci Vámi vytvořených úloh. Jsou zde k dispozici veškeré nástroje, které slouží k sestavení, odladění a spouštění sekvenčních úloh.

Ukázka textu sekvenční úlohy

Úloha sloužící pro výpočet parametrů vazebního členu vysílače HDO.

Upozornění:	Příklad zde uvedený obsahuje jen fragment výpočtu, podstatné části byly v této ukázce záměrně vypuštěny. Úloha byla řešena v oboru komplexních čísel.

mode rad,dec,cplx,imag=j

'pole se vstupními proměnnými

@1=f2

@2=k

@3=U1

@4=C1

@5=L1

@6=Q1

@7=C2

@8=Q2

'registrace a inicializace vstupních proměnných

U1=600	[V]	'napětí

C1=240	[uF]	'kapacita

L1=1.7	[mH]	'indukčnost

Q1=40	[-]	'činitel jakosti

k=0.125	[-]	'činitel vazby

f2=217	[Hz]	'frekvence

C2=1.2	[uF]	'kapacita

Q2=100	[-]	'činitel jakosti

Zs=14	[ohm]	'impedance sítě

fi=30	[deg]	'úhel impedance sítě

f=216.667	[Hz]	'frekvence signálu HDO

'registrace výstupních proměnných

I1=0	[A]	'proud

fi1=0	[deg]	'fazovy posun

f1=0	[Hz]	'rezonanční kmitočet

Uc1=0	[V]	'napětí na kondenzatoru

IL1=0	[V]	'proud indukčností

Xi1=0	[-]	'poměr kmitočtu f1/f

I2=0	[A]	'výstupní proud

U2=0	[V]	'výstupní napětí

S1=0	[kVA]	'zdánlivý příkon

S2=0	[kVA]	'zdánlivý výkon

L2=0	[mH]	'indukčnost

'přepočet na základní jednotky

C1=C1*1E-6

L1=L1*1E-3

C2=C2*1E-6

L=L*1E-3

C3=C3*1E-6

'vlastní výpočet

I2=U1*c/(a*(b+d)-c*c)

I1=I2*(b+d)/c

fi1=arg(I1)

IL1=I1*kI1

U2=I2*d

Uc1=I1*1/w/C1

S1=3*U1*conjug(I1)

S2=3*U2*conjug(I2)

Z1=U1/I1

Z2=U2/I2

'PROTOKOL

'~~~~~~~~

open EdForm,show

cls

print "Vstupní hodnoty  -  volna vazba HDO"

print "-----------------------------------------------------------"

print "  napětí zdroje	U1 = %4.3f	[V]	",  U1

print "  kapacita	C1 = %4.3f	[uF]	",  C1*1E6

print "  indukčnost	L1 = %4.3f	[mH]	",  L1*1E3

print "  činitel jakosti	Q1 =  %4.3f	[-]	",  Q1

print "  činitel vazby	k = %4.3f	[-]	",  k

print "  laděný kmitočet	f2 = %4.3f	[Hz]	",  f2

print "  kapacita	C2 =  %4.3f	[uF]	",  C2*1E6

print "  činitel jakosti	Q2 = %4.3f	[-]	",  Q2

print "  impedance sítě	Zs = %4.3f	[ohm]	",  Zs

print "  úhel impedance	fi = %4.3f	[deg]	",  180/pi*fi

print "  frekvence signálu	f = %4.3f	[Hz]	",  f

print

print

print "Vypočtené hodnoty  -  fázové posuny vztaženy k napětí zdroje"

print "--------------------------------------------------------------------------------------------------"

print "  proud I1	I1 = %1.2f	[A]	%3.3g 	[deg]",  abs(I1), 180/pi*arg(I1)

print "  rezonanční frekv.	f1 = %1.2f	[Hz]", f1

print "  napětí na kond. C1	Uc1 = %1.2f	[V]	%3.3g 	[deg]",  abs(Uc1), 180/pi*arg(Uc1)

print "  proud tlumivkou L1	IL1 = %1.2f	[A]	%3.3g 	[deg]",  abs(IL1), 180/pi*arg(IL1)

print "  poměr kmitočtu Xi1	Xi1 = %1.2f	[-]",  Xi1

print "  proud I2	I2 = %1.2f	[A]	%3.3g 	[deg]",  abs(I2), 180/pi*arg(I2)

print "  napětí U2	U2 = %1.2f	[V]	%3.3g 	[deg]",  abs(U2), 180/pi*arg(U2)

print "  výkon S1	S1 = %1.2f	[kVA]	%3.3g 	[deg]",  abs(S1)/1000, 180/pi*arg(S1)

print "  výkon S2	S2 = %1.2f	[kVA]	%3.3g 	[deg]",  abs(S2)/1000, 180/pi*arg(S2)

print "  indukčnost L2	L2 = %1.2f	[mH]", L2

end


Řízení úloh příkazovým interpretem

Programování úloh

Program EMcalc zavedl ve verzi 2.0 novinku zásadního významu, a to možností programování úloh. Implementace příkazového interpretu činí z programu EMcalc programovatelnou kalkulačku, která plně využívá všech možností dostupných při manuálním provádění výpočtů a široce je rozvíjí.

Programovatelnost podstatně zvyšuje užitnou hodnotu EMcalcu. Uživatelé mohou vytvářet knihovny řešených úloh, které sami naprogramují nebo které importují z distribuovaných balíčků dostupných na webových stránkách http://www.emdat.cz/emcalc.

Programování úloh a provádění výpočtů pomocí interpretovaných úloh je natolik rozsáhlá problematika, že jí je věnovaná samostatná kapitola Programování úloh.


Soustava lineárních rovnic

Názvosloví a definice,   Metoda řešení,   Uživatelské rozhraní,

Zadávání vstupních dat,   Vyhodnocení výsledků výpočtu

Upozornění

Řešení soustavy lineárních algebraických rovnic a maticový počet je implementován jen ve verzi Professional viz Rozdíly programových verzí

Význam matematického modelování

Pomocí soustav lineárních algebraických rovnic lze vytvářet matematické modely, pomocí nichž lze vyšetřovat některé parametry poměrně složitých systémů v různých oblastech. Algoritmus řešení soustavy lineárních rovnic lze aplikovat na výpočty metodou konečných prvků. Jmenujme alespoň některé oblasti, kde nalézá řešení soustavy lineárních algebraických rovnic uplatnění:

•	výpočty poměrů v elektrických sítích,

•	rozložení elektromagnetických polí,

•	proudění v kapalinách,

•	pevnostní výpočty materiálů (např. prutové soustavy nosníků).

Sledovaný systém má charakter dvourozměrné sítě s množinou uzlů pospojovaných navzájem větvemi. Vstupní data představují výchozí parametry uzlů a větví sítě. Při zadávání vstupních dat se určuje jednak topologie sítě (způsob propojení uzlů sítě větvemi), jednak se definují rozměry jednotek fyzikálních veličin v uzlech a ve větvích modelové sítě.

Řešení soustavy lineárních algebraických rovnic umožňuje vyšetřování poměrů v celé síti i v jednotlivých jejích částech.

Vytváření matematických modelů fyzikálních systémů je účelné zejména ve fázi projektové činnosti ale také při ověřování shody naměřených parametrů s teoretickými hodnotami.

Historická poznámka

Mezi první řešitele soustav lineárních rovnic ve starověku patřili Číňané. Čínský matematik Čang Sang již ve 2. stol. př.n.l. popisuje v knize "Van Čen" algoritmus řešení soustav lineárních rovnic, který je obdobou naší kondenzační metody, kterou se rozšířená matice soustavy převádí na trojúhelníkový tvar.


Názvosloví a definice

Názvosloví a definice

Soustavu n lineárních algebraických rovnic s n neznámými nazýváme soustavu rovnic

a11 x1 + a12 x2  + ...  a1n xn = b1

a21 x1 + a22 x2  + ...  a2n xn = b1

...........................................

an1 x1 + an2 x2 + ...  ann xn = bn

kde koeficienty aik jsou daná komplexní čísla (koeficienty při neznámých), a koeficienty bi jsou daná komplexní čísla (absolutní členy rovnic tvořící pravé strany rovnic).

Soustava lineárních algebraických rovnic se nazývá homogenní, když jsou všechny absolutní členy bi rovny nule. Soustava se nazývá nehomogenní, když slespoň jeden koeficient bi je různý od nuly.

Matice  A = (aik)  utvořená z koeficientů při neznámých na levých stranách všech rovnic se nazývá matice soustavy a matice vzniklá připojením absolutních členů k matici soustavy se nazývá rozšířená matice soustavy.

Vektor  X  = (xi)  se nazývá vektor neznámých, vektor  B  = (bi)  se nazývá vektor pravých stran. Použitím této symboliky lze soustavu lineárních algebraických rovnic vyjádřit jedinou maticovou rovnicí takto:

A X = B

Hodnost soustavy lineárních algebraických rovnic je rovna hodnosti matice soustavy.

Hodnost matice je největší počet lineárně nezávislých řádků této matice.

Matice typu n/n (čtvercová) je regulární, jestliže její determinant je různý od nuly.

Řešením soustavy lineárních algebraických rovnic se nazývá taková n-tice komplexních čísel, že po jejich dosazení za neznámé dostaneme ze všech rovnic rovnosti (identity).

Podmínky řešitelnosti soustavy

Nehomogenní soustava n lineárních algebraických rovnic s n neznámými je řešitelná, když matice soustavy a rozšířená matice soustavy mají stejnou hodnost h.

Při  h = n  existuje jedno řešení soustavy.

Při  h < n  existuje nekonečně mnoho řešení soustavy.

Každý vektor x1, x2, ...xn, který vyhovuje všem rovnicím dané soustavy se nazývá partikulární řešení soustavy. Všechna pratikulární řešení soustavy tvoří její řešení obecné.

Soustava n lineárních algebraických rovnic s n neznámými má právě jedno řešení tehdy, když je matice soustavy regulární.

Podmíněnost a stabilita řešení soustavy

Soustava lineárních algebraických rovnic je dobře podmíněná (špatně podmíněna) , jestliže malou změnou koeficientů matice soustavy případně malou změnou koeficientů pravých stran rovnic se málo (velmi) změní vektor řešení.

Pro dobře podmíněné soustavy je Gaussova eliminační metoda numericky stabilní proces.


Metoda řešení

Metoda řešení soustavy lineárních algebraických rovnic

Existují dvě základní metody řešení:

•	přímé metody (finitní metody)

•	nepřímé metody (iterační metody).

Program EMcalc používá k řešení soustavy lineárních algebraických rovnic Gaussovu eliminační metodu (GEM). Je to metoda přímá, finitní, která poskytuje velmi přesné výsledky u matic soustav dobře podmíněných (v praxi většinou splněno) a je u sítí nepříliš velkého rozsahu velmi efektivní. V případě rozsáhlých sítí však existují optimalizační algoritmy, které jsou velmi účinné u řídkých sítí (např. sítě elektrické).

Dvě fáze výpočtu Gaussovou eliminační metodou

Přímý chod	V přímém chodu se provádí triangulace matice soustavy - postupnými elementárními ekvivalentními operacemi s prvky rozšířené matice soustavy se postupně získá trojúhelníková matice, kde všechny prvky pod hlavní diagonálou jsou rovny nule.

Zpětný chod	Ve zpětném chodu je substituční metodou získáno řešení soustavy rovnic - vektor neznámých.

Časová náročnost výpočtu

Výpočetní časová náročnost (počet časově náročných operací násobení a dělení) této metody je závislá na řádu matice soustavy (počtu rovnic) podle vzorce:

1/3*N^3 + N^2 - N/3

V praxi to znamená, že časová náročnost výpočtu roste s řádem matice více než kvadraticky. Praktický test řešení matice 100x100 s komplexními prvky na počítači s procesorem AMD K6-II taktovaný na 500 MHz prokázal časovou náročnost řešení této soustavy cca 1 sec.

Je ale nutno vzít v úvahu, že existují velmi účinné optimalizační algoritmy, které výrazně redukují časové nároky při nezměněné přesnosti výpočtu.

Aplikace:	Jako příklad použití optimalizovaného algoritmu řešení soustavy lineárních algebraických rovnic s komplexními koeficienty lze uvést profesionální počítačový program s názvem Harmonická analýza distribučních a průmyslových sítí, jehož demoverzi lze stáhnout z webové stránky http://www.emdat.cz/download/ha.zip


Uživatelské rozhraní

Uživatelské rozhraní okna pro řešení soustavy rovnic

Řešení soustavy lineárních algebraických rovnic se provádí v samostatném formuláři, který se vyvolá pomocí nabídky menu Matice/Soustava rovnic.

Okno obsahuje titulkový pruh, standardní systém hlavního menu, tlačítkovou lištu (panel nástrojů), dvě synchronizované datové mřížky pro vstupní a výstupní data, editor rovnic a stavový řádek.

Datová mřížka vstupních dat je uspořádána do n řádků a n+1 sloupců, číslovaných od jedničky  a představuje rozšířenou matici soustavy. Buňky diagonálních prvků matice soustavy jsou pro názornost slabě podšeděny, buňky vektoru pravých stran rovnic jsou zvýrazněny slabě žlutou barvou.

Sloupec v pravé datové mřížce slouží k uchování hodnot hledaného vektoru proměnných.

V dolní části okna (na obrázku se světle šedým pozadím) je umístěn editor rovnic pro matematický zápis soustavy rovnic a pro zápis poznámek.

Rozdělování oken

Velikosti jednotlivých částí okna a šířky sloupců datové mřížky lze dle potřeby přizpůsobit.

Při změně polohy svislého rozdělovače se implicitně přizpůsobuje šířka sloupců obou datových  mřížek. Tuto vlastnost lze vypnout v nabídce menu Rastr/Automaticky zarovnávat. Zaškrtnutí této volby lze dočasně potlačit přidržením klávesy Shift, která mění význam zaškrtnutí v opačný.

Při změně velikosti okna ve vodorovném směru se mění šířka pravé datové mřížky, pokud má tato zaměření pro vstup z klávesnice, v opačné případě si zachovává konstantní šířku.

Analogicky při změně velikosti okna ve svislém směru se mění výška editoru rovnic, pokud má tento zaměření pro vstup z klávesnice, v opačné případě si zachovává konstantní výšku.

Panel nástrojů

Pro ovládání nejčastěji používaných funkcí je k dispozici panel nástrojů (tlačítková lišta) obsahující kromě tlačítek dvě vstupní pole pro zadání číselné hodnoty.

Význam ovládacích prvků panelu nástrojů

Řád matice soustavy

Vstupní pole obsahuje počet řádků datové mřížky, který je roven řádu čtvercové matice soustavy. Řád matice lze volit v rozsahu 2..100.

Vytvoření nové soustavy rovnic

Pomocí tohoto tlačítka lze vymazat obsah buněk datové mřížky a uvolnit systémové zdroje datových struktur alokovaných pro výpočet soustavy rovnic.

Načtení vstupních dat ze souboru

Tlačítko otevírá dialog pro výběr souboru pro načtení vstupních dat (klávesová zkratka Ctrl+O). Tlačítko s malou šipkou otevírá historii souborů vstupních dat jak ukazuje obrázek. Historii souborů lze otevřít také klávesovou zkratkou Shift+Ctrl+O.

Uložení souboru, uložení souboru pod názvem

Tlačítko Uložit slouží pro uložení vstupních dat do souboru. Kromě názvu souboru lze určit typ souboru. Podporovány jsou soubory textové a binární. Je-li při klepnutí na toto tlačítko stisknuta klávesa SHift nebo Ctrl, otevře se dialog pro uložení souboru pod specifikovaným názvem.

Zarovnat po okraje

Tlačítko zajišťuje rovnoměrnou šířku sloupců datové mřížky tak, aby byly všechny sloupce viditelné. Při větším počtu sloupců však dochází ke značnému zhuštění sloupců. Šířku sloupců lze individuálně měnit tažením za rozdělovací čáry sloupců v záhlaví datové mřížky.

Při větším počtu sloupců je tento postup značně nepohodlný, a proto je k dispozici možnost měnit šířku všech sloupců najednou.

Šířka sloupců

Tento kombinovaný ovládací prvek slouží pro nastavení rovnoměrné šířky sloupců datové mřížky . Číselnou hodnotu lze zapsat do editačního pole nebo lze pomocí myši a tlačítek s šipkami zvětšovat a zmenšovat šířku sloupců inkrementálně. Je-li vstupní pole zaměřeno pro vstup z klávesnice (bliká-li v něm textový kurzor), lze šířku sloupců inkrementovat klávesou Up a dekrementovat klávesou Down po 1 nebo ve skocích po 10 klávesami PgUp a PgDown.

Naplnění rozšířené matice soustavy náhodnými čísly

Tlačítko vygeneruje náhodná čísla v rozsahu -99 až 99 a kompletně vyplní vstupní datovou mřížku. Vygenerovat lze také náhodná čísla komplexní a to tak, že přidržíme klávesu Shif (nebo Ctrl nebo Alt) a myší klepneme na toto tlačítko. Takto lze snadno testovat řešení soustav rovnic s větším počtem rovnic.

Převedení zápisu soustavy rovnic na matici soustavy

Pro snadné řešení soustav nevelkého počtu rovnic klasickým zápisem soustavy rovnic jako v matematice je k dispozici editor rovnic (v dolní části okna). Tlačítko s ikonou modré tužky provede převedení takového zápisu do matice soustavy. Z rovnic jsou vyextrahovány koeficienty při proměnných a vektor pravých stran rovnic. Předpokladem je dodržení konvencí pro zápis soustavy rovnic.

Symetrický zápis prvků matice

V praxi se často vyskytují případy, kdy matice soustavy je symetrická podle hlavní diagonály (např. matematické modely elektrických  sítí). Po zamáčknutí tohoto tlačítka bude dvojice symetrických buněk editována simultánně, což jednak zápis urychlí, jednak vyloučí zavlečení nežádoucích chyb při editaci.

Transponovaná matice soustavy

Tlačítko konvertuje čtvercovou matici soustavu na matici transponovanou záměnou řádků se sloupci (z řádků se stanou sloupce a naopak). Dvojnásobné provedení transpozice obnoví matici původní. Upozornění: Při transpozici zůstává vektor pravých stran nezměněn.

Ukládání historie výpočtu řešení soustavy rovnic

Tlačítko otevírá okno Historie výpočtů do něhož se při výpočtu zapisují mezivýsledky dílčích úprav rozšířené matice soustavy při jejím řešení.

Nastavení vlastností matice

Tlačítko otevírá dialog pro nastavení vlastností matice.

Soustava rovnic/Maticové operace

Multifunkční tlačítko slouží k nastavení druhu výpočtu - soustava rovnic / maticové operace. Pokud byly již provedeny určité maticové operace, umožní rozbalovací menu pod šipkou snadný přístup k posledně provedeným operacím. Poslední operace je na vrcholu seznamu nabídek. Ikona tlačítka uchovává symbol operace, která se provede při stisknutí tlačítka Spustit výpočet.

Spuštění výpočtu

Tlačítko spouští výpočet řešení soustavy lineárních algebraických rovnic. Ekvivalentní klávesové zkratky jsou F9 případně Alt+R.

Přerušení výpočtu

Probíhající výpočet lze tímto tlačítkem přerušit. Ekvivalenty klávesových zkratek této funkce je klávesa F2 a zkratka Alt+X.

Triangulace matice soustavy

Tlačítko umožňuje zobrazení triangulované matice soustavy při řešení soustavy lineárních algebraických rovnic Gaussovou eliminační metodou.

Kontrola výsledků výpočtů

Tlačítko umožňuje provedení zpětné kontroly výsledků řešení. Po dobu, kdy je toto tlačítko zamáčknuto se zobrazí ve výstupní datové mřížce místo vektoru neznámých vektor pravých stran získaný zpětnou dosazovací metodou. V tomto režimu je sloupec žlutě podbarven.

Triangulace matice soustavy

Tlačítko umožňuje zobrazení triangulované matice soustavy při řešení soustavy lineárních algebraických rovnic Gaussovou eliminační metodou.

Přenesení prvků pravé matice do levé matice

Tlačítko umožňuje zkopírování obsahu pravé matice do levé matice. To je vhodné např. při provádění dvojnásobné inverze, zda bude výsledkem původní matice

Uložení vektoru řešení soustavy do textového souboru.

Uložení matice soustavy i vektoru řešení do sešitu MS Excel.

Zkopírování vektoru řešení soustavy do schránky Windows.


Zadávání vstupních dat

Řád matice soustavy

Na počátku ručního zadání vstupních dat je nutno vytvořit v datové mřížce potřebný prostor pro data. Vstupní pole kombinovaného ovládacího prvku Řád matice zobrazuje počet řádků datové mřížky, který je roven řádu čtvercové matice soustavy. Počet sloupců se nastaví automaticky.

Řád matice soustavy lze volit v rozsahu 2..100. Hodnotu lze zapsat do editačního pole nebo lze tuto hodnotu měnit inkrementálně pomocí myši a tlačítek s šipkami napravo od vstupního pole nebo klávesami Up a Down po 1 nebo ve skocích po 10 klávesami PgUp a PgDown.

Při změně počtu řádků matice se automaticky nastavuje rovnoměrná šířka sloupců tak, aby se všechny sloupce vešly do vymezeného prostoru datové mřížky.

Při načtení dat ze souboru se všechna tato nastavení provedou automaticky.

Zápis vstupních dat

Vstupní data pro řešení soustavy lineárních algebraických rovnic lze v programu EMcalc pořídit ručně dvěma způsoby:

•	vyplněním buněk vstupní datové mřížky rozšířené matice soustavy,

•	matematickým zápisem soustavy rovnic v editoru rovnic s následným převedením na rozšířenou matici soustavy.

Způsob zadávání, který bude zvolen, je do jisté míry závislý na účelu použití výpočtu. Jednoduché soustavy rovnic bude snazší zapisovat v editoru rovnic. U náročných úloh bude použití datové mřížky pro zadávání dat nezbytné.

Vyplnění vstupní datové mřížky

Jednotlivé buňky datové mřížky obsahují buňkový editor pro zápis a editaci hodnot. Při vstupu do buňky je stávající obsah buňky zvýrazněn. Pokud je v tomto okamžiku stisknuta znaková klávesa, je obsah buňky napsaným znakem přepsán. Chceme-li pouze doeditovat stávající hodnotu, je třeba vstoupit do editačního režimu stiskem klávesy Enter nebo dalším klepnutím myši na zvýrazněný text.

Po jednotlivých buňkách se lze pohybovat klepnutím myši dovnitř buňky nebo klávesovými zkratkami dle následujícího přehledu.

Klávesové zkratky pro pohyb po buňkách mřížky

Left	kurzor o buňku doleva

Right	kurzor o buňku doprava

Up	kurzor o buňku nahoru

Down	kurzor o buňku dolů

Cltr+Left	posun mřížky o stránku doleva

Cltr+Right	posun mřížky o stránku doprava

Ctrl+Up	posun mřížky o řádek nahoru

Ctrl+Down	posun mřížky o řádek dolů

PgUp	posun mřížky o stránku nahoru

PgDown	posun mřížky o stránku dolů

Ctrl+PgUp	kurzor do horní buňky stránky

Ctrl+PgDn	kurzor do dolní buňky stránky

Home	kurzor do první buňky řádku

End	kurzor do poslední buňky řádku

Ctrl+Home	kurzor do první (levé horní) buňky mřížky

Ctrl+End	kurzor do poslední (pravé dolní) buňky mřížky

Obsah buněk

Do jednotlivých buněk lze zapisovat čísla reálná i komplexní, pokud je v hlavním panelu nastaven režim cplx

Pro zápis čísel lze použít všech dostupných číselných notací implementovaných v programu EMcalc. V buňkách mohou být uvedeny též výrazy a proměnné, (proměnné programu EMcalc) za předpokladu, že v průběhu řešení soustavy rovnic nedochází ke změně jejich hodnot. To může být užitečné např. při provádění variantních výpočtů.

Upozornění:	Diagonální prvky v podšeděných buňkách nesmí být rovny nule, jinak je matice soustavy singulární (nemá řešení).

Naplnění rozšířené matice soustavy náhodnými čísly

Tímto tlačítkem lze vygenerovat (nalít..ikona nálevky) náhodná čísla v rozsahu -99 až +99 a vyplnit jimi vstupní datovou mřížku. Lze vygenerovat rovněž náhodná čísla komplexní, pokud je při klepnutí na toto tlačítko přidržena klávesu Shif (případně Ctrl nebo Alt). Tato funkce je užitečná pro testování vlastností režimu řešení soustavy rovnic.

Editor rovnic

Použití editoru rovnic umožňuje zápis soustavy lineárních rovnic tak, jak je zvykem v matematice. Soustava rovnic se zapisuje do okna editoru rovnic, jak ukazuje obrázek:

Tento způsob zápisu však má na rozdíl od přímého zápisu do buněk datové mřížky tato omezení:

•	nelze použít v oboru komplexních čísel,

•	nelze použít exponenciální notaci zápisu čísel,

•	nelze použít inženýrskou postfixovou notaci čísel,

•	nelze použít výrazy a jiné proměnné než ty, které jsou předmětem hledaného řešení.

Přes všechna tato omezení je editor rovnic užitečnou pomůckou, neboť umožňuje zápis jednoduchých soustav rovnic přirozeným způsobem jako v matematice.

Aby se mohl provést výpočet takto zapsané soustavy rovnic, je nutno soustavu rovnic převést na rozšířenou matici soustavy, k čemuž slouží tlačítko s ikonou modré tužky.

Načtení vstupních dat ze souboru

Tento způsob umožňuje jednak načtení uložených dat z Programu EMcalc, jednak import dat z jiných aplikací. Podporován je textový formát a čtyři druhy binárních formátů, a to jak pro vstupní data rozšířené matice soustavy, tak i pro výstupní vektor proměnných (řešení soustavy rovnic).

Komentáře:	Komentář textového souboru se uvozuje do apostrofu a platí do konce řádku.

Import vstupních dat z textového souboru

Import vstupních dat z textového souboru pořízeného jinými prostředky než v programu EMcalc je možný za předpokladu, že data mají následující strukturu:

•	počet relevantních řádků se rovná řádu matice soustavy

•	řádky mají strukturu řádků rozšířené matice soustavy,

•	jako oddělovače hodnot (neboli sloupců) je použit tabulátor nabo mezera

Soubor může obsahovat prázdné řádky a komentáře uvozené apostrofen. Tyto jsou při načtení souboru eliminovány.

Poznámka:	Přípona souboru nemusí být nutně .txt, všechny soubory, které mají jinou příponu než .re4, .re8, .cp4, .cp8 jsou obslouženy jako textové.

Import vstupních dat z binárního souboru

Import vstupních dat z binárního souboru pořízeného jinými prostředky než programem EMcalc je možný za předpokladu, že data mají následující strukturu, kterou určuje přípona souboru.

Přípona a formát binárních souborů

.re4	matice reálných čísel s jednoduchou přesností, čísla po 4 byte,

.re8	matice reálných čísel s dvojnásobnou přesností, čísla po 8 byte,

.cp4	matice komplexních čísel s jednoduchou přesností, složky čísla po 4 byte,

.cp8	matice komplexních čísel s dvojnásobnou přesností, složky čísla po 8 byte.

Struktura souboru musí odpovídat struktuře rozšířené matice soustavy - organizace dat je po řádcích včetně prvků vektoru pravých stran rovnic.

Poznámka:	Komplexní čísla musí obsahovat reálnou a imaginární složku (nikoli modul a argument).


Vyhodnocení výsledků výpočtu

Řešení soustavy lineárních rovnic

Spuštění výpočtu

Jakmile jsou buňky vstupní datové mřížky vyplněny, lze provést výpočet aktivací tohoto tlačítka. Ekvivalentní klávesové zkratky jsou F9 případně Alt+R.

Poznámka:	Prázdné buňky jsou obslouženy jako by v nich byla zapsána nulová hodnota.

Upozornění:	Aby byla soustava řešitelná, musí být všechny diagonální prvky matice soustavy (v podšeděných buňkách) různé od nuly.

Průběh výpočtu lze sledovat ve stavovém řádku, jak ukazuje obrázek:

Jakmile je výpočet skončen, zobrazí se ve stavovém řádku doba výpočtu (neobsahuje přípravnou fázi pro převedení číselných hodnot zapsaných jako řetězce znaků v buňkách datové mřížky do numerických struktur vhodných pro vlastní výpočet).

Záznam historie výpočtu

Ukládání historie výpočtu řešení soustavy rovnic

Jelikož program EMcalc se snaží být nástrojem analytickým, nechybí ani tato funkce, pomocí níž lze sledovat mezivýsledky dílčích úprav rozšířené matice soustavy při jejím řešení.

Význam indexů

P	index průchodu maticí při triangulaci v přímém chodu Gaussovy eliminace

I	řádkový index prvku matice soustavy

J	sloupcový index prvku matice soustavy

Hodnoty V[i,j] vystihují přesnou hodnotou prvku matice jen tehdy, pokud je vypnuto zaokrouhlování zobrazených hodnot (nastavuje se v hlavním aplikačním oknu programu EMcalc viz obrázek níže).

Výsledky přímého chodu Gaussovy eliminační metody

Triangulace matice soustavy

Při řešení soustavy lineárních algebraických rovnic Gaussovou eliminační metodou je cílem přímého chodu získání trojúhelníkové matice soustavy, kdy všechny prvky pod hlavní diagonálou jsou rovny nule. Při procesu triangulace matice soustavy se postupnými ekvivalentními úpravami přepočítávají prvky matice soustavy. Toto tlačítko umožňuje zobrazení obsahu triangulované matice soustavy.

Kontrola výsledků řešení

Kontrola hledaného vektoru neznámých

Při řešení rovnic se obecně používá zpětná kontrola řešení dosazovací metodou. Je-li matice soustavy regulární, má soustava rovnic jediné řešení, jehož správnost lze ověřit tímto tlačítkem.

Po dobu, kdy je toto tlačítko zamáčknuto se zobrazí ve výstupní datové mřížce místo vektoru neznámých vektor pravých stran získaný zpětnou dosazovací metodou. V tomto režimu je sloupec žlutě podbarven. Porovnání těchto dvou žlutě obarvených sloupců lze provést kontrolu shody.

Poznámka:	Je-li naprostá shoda, byla matice soustavy tzv. dobře podmíněna. Byla-li špatně podmíněna, lze shledat určité rozdíly, které jsou tím větší, čím je horší podmíněnost matice.

Formát a přesnost zobrazených výsledků

Formát zobrazených čísel ve vektoru neznámých (hledaného řešení soustavy rovnic), jakož i přesnost zobrazených čísel je závislá na nastavení ovládacích prvků hlavního aplikačního okna programu EMcalc.

Tímto způsobem lze docílit jednak zaokrouhlení na požadovaný počet platných míst, jednak lze aktivovat postfixovou inženýrskou notaci a zpřehlednit tak zobrazení velkých nebo naopak malých čísel.

Uložení výstupních dat

Řešení soustavy lineárních algebraických rovnic - hledaný vektor proměnných lze uložit do textového nebo binárního souboru. Formát binárních souborů je dále závislý na číselném oboru (real nebo cplx) a na požadované přesnosti (single nebo double).

Reálné číslo nebo každá složka komplexního čísla je uložena ve čtyřech byte (single ...jednoduchá přesnost) případně v osmi byte (double ...dvojnásobná přesnost).

Komplexní čísla ukládaná do binárních souborů obsahují reálnou a imaginární složku (nikoli modul a argument).

Struktura souboru odpovídá struktuře rozšířené matice soustavy - data jsou organizována po řádcích včetně prvků vektoru pravých stran rovnic.

Export dat

Export do sešitu MS Excel

Je-li na počítači instalována aplikace MS Excel, otevře toto tlačítko program MS Excel, založí nový sešit a uloží do něj prvky rozšířené matice soustavy včetně vektoru proměnných pro další zpracování.

Kopírovat výsledky do schránky Windows

Pomocí tohoto tlačítka lze číselné hodnoty vektoru proměnných zkopírovat jako text do schránky Windows.


Maticový počet

Upozornění

Řešení soustavy lineárních algebraických rovnic a maticový počet je implementován jen ve verzi Professional viz Rozdíly programových verzí


Hlavní menu


Menu Soubor


Menu Rastr


Menu Data


Menu Hledat


Menu Úpravy


Menu Konverze


Menu Výpočet


Menu Řešení


Formy zobrazení výsledků

Výsledky výpočtů lze zobrazit různým způsobem v závislosti na druhu výpočtu a na stavu uživatelského rozhraní aplikace

•	numerické zobrazení výsledků jednoduchých výpočtů na displeji,

•	zobrazení historie výpočtů, možnost jejího záznamu do souboru,

•	náhled grafu datové řady (součást hlavního okna aplikace),

•	detailní graf datové řady s pokročilými funkcemi,

•	tabelární zobrazení statistické a regresní analýzy datové řady,

•	výstup do okna formuláře a do textového souboru.


Displej

Nastavení vzhledu displeje

Pro zobrazení numerických hodnot výsledků výpočtů slouží velký, dobře čitelný displej. Velikost písma závisí na tom, zda je aktivní obor reálných či komplexních čísel. V oboru komplexních čísel je použito menší písmo, aby údaj displeje při maximální možné přesnosti a maximální hodnotě dekadického rozsahu  nebyl uříznut.

Vzhled displeje - barvu pozadí a všechny atributy písma (název písma, velikost, barvu a styl) lze měnit v dialogu Nastavení na kartě Vzhled.

Historie zobrazených hodnot na displeji

Chceme-li nahlédnout do seznamu výsledků několika posledně provedených výpočtů, stačí na chvíli umístit kurzor na displej a požadovaný seznam se na několik vteřin zobrazí v ve formě plovoucí nápovědy.

V případě iteračního výpočtu se v bublinové nápovědě zobrazí čas, který byl potřebný k provedení výpočtu.

Formát zobrazení reálných čísel na displeji

Implementovány jsou čtyři základní číselné formáty:

•	normální číselný formát

•	pevná desetinná čárka

•	exponenciální notace

•	inženýrská notace

Možnosti formátování jsou ukázány v následující tabulce

Poznámka:	Je-li zaokrouhlování vypnuto, obsahuje formát s pevnou řádovou čárkou právě dvě desetinná místa.

Přepínání formátu zobrazení čísel na displeji se provádí buďto tlačítkem [image] nebo pomocí kontextové nabídky klepnutím pravého tlačítka myši na displej, jak je patrné z následujících obrázků.

Kromě číselného formátu lze ve všech režimech zapnout zaokrouhlování čísel na požadovaný počet platných míst (normální, exponenciální a inženýrská notace), případně na počet desetinných míst (formát s pevnou řádovou čárkou). Je-li zaokrouhlování zapnuto, lze měnit počet míst pomocí šipek nebo zapsáním číselné hodnoty do editačního pole.

Poznámka:	Ovládání skupiny prvků pro řízení zobrazení s inženýrskou postfixovou notaci je obdobné jako u skupiny ovládacích prvků pro zaokrouhlování.

Formát zobrazení komplexních čísel na displeji

Komplexní čísla lze na displeji zobrazit dvěma základními způsoby, a to ve tvaru složkovém nebo exponenciálním. Např. totéž komplexní číslo, jehož modul má hodnotu 12,3 a argument 45 stupňů se zobrazí

•	ve složkovém tvaru:	10,65+6,15j  (zaokrouhleno na 4 platný místa)

•	v exponenciálním tvaru	12,3*e^45oj  (písmeno "o" je symbol stupně)

Žádaný tvar zobrazení se nastaví pomocí kontextového menu displeje pomocí nabídek

Složkový tvar kompl. čísel případně

Exp. tvar komplex. čísel.

Mezi oběma tvary zobrazení lze přepínat tlačítkem [image] tabla funkčních tlačítek.

Tyto dva základní tvary zobrazení komplexních čísel závisí dale na aktuálním nastavení číselného formátu zobrazení reálných čísel, které se nastavuje opět v kontextovém menu displeje

•	Normální číselný formát

•	Pevná desetinná čárka

•	Exponenciální notace

•	Inženýrská notace

Exponenciální tvar zobrazení komplexních čísel dále závisí na nastavení úhlových jednotek. Jsou-li nastaveny radiány, nepřidává se žádný postfix. Jako symbol stupňů se přidává postfix "o" před symbol imaginární jednotky. Analogicky se pro gradiány přidává postfix "g".

Zobrazení dále ovlivňuje aktuální nastavení zaokrouhlování čísel a použití inženýrské notace.

Upozornění:	Kombinace exponenciálního tvaru komplexních čísel spolu s inženýrskou notací může vést k tříznakovému postfixu, který sice lze vizuálně správně interpretovat nikoli však metodou drag & drop přetahovat do vstupních polí, protože tříznakové postfixy program EMcalc nepodporuje.


Graf

Pro grafické zobrazení výsledků výpočtů datové řady se po provedeném výpočtu automaticky zobrazí graf datové řady. Tento graf slouží jen jako náhled na grafický průběh dat.

Umístíme-li kurzor myši na plochu grafu, zobrazí se v bublinové nápovědě mezní hodnoty Xmin, Xmax, Ymin, Ymax.

Plocha grafu představuje aktivní prvek, tzn. klepneme-li na ní, zobrazí se detailní graf. Dále je podporována metoda drag & drop pro přetahování numerických hodnot datové řady zobrazeného grafu do okna statistické, případně regresní analýzy.


Detailní graf

Pro podrobnější analýzu grafické prezentace datových řad slouží detailní graf, umístěný do samostatného okna obsahující některé pokročilé funkce typické pro grafické editory.

Zobrazení detailního grafu se vyvolá některým z následujících způsobů:

•	nabídka hlavního menu Graf/Detailní graf,

•	nabídka kontextového menu minigrafu Detailní graf,

•	poklepání levým tlačítkem myši na minigraf v hlavním oknu,

•	klávesovou zkratkou Ctrl+G.

Okno grafu datové řady obsahuje tyto ovládací a informační objekty:

•	panel nástrojů (je zobrazen níže),

•	posuvný jezdec,

•	horizontální posuvník,

•	vertikální posuvník,

•	stavový řádek.

Zobrazení jednotlivých prvků lze zapínat a vypínat pomocí místní nabídky, která je dostupná klepnete-li pravým tlačítek myši do vnitřní plochy grafu.

Panel nástrojů

Plovoucí panel nástrojů lze vyjmout z okna grafiky a zobrazit ho v samostatném oknu.

Význam tlačítek panelu nástrojů

Načíst datovou řady z textového souboru

Uložit grafiku do souboru

Kopírovat grafiku do schránky Windows

Vytisknout grafiku

Přidat datovou řadu do grafiky

Odebrat datovou řadu z grafiky

Vyjmout všechny datové řady z grafiky

Index grafu vybrané datové řady

Skrýt grafy nevybraných datových řad

Animovat grafy parametrických datových řad

Zvolit souřadný systém

Snímat souřadnice bodů vybraného grafu

Měřit vzdálenosti bodů grafů (diferenci souřadnic dvou bodů)

Zvětšit graf o hodnotu míry v procentech

Zmenšit graf o hodnotu míry v procentech

Míra zvětšení grafu v procentech

Obnovit velikost a polohu grafu (přehledové zobrazení)

Měnit velikost nebo polohu vodorovně

Měnit velikost nebo polohu svisle

Měnit velikost nebo polohu vodorovně i svisle

Změnit textové popisky grafu

Nastavit barvy grafu

Zobrazit systém nápovědy EMcalc

Souřadný systém

Vzhled grafu je dán volbou souřadného systému. Implementovány jsou souřadné systémy

•	ortogonální,

•	ortonormální.

Poznámka:	Souřadný systém ortonormální zachovává shodné měřítko v obou osách (nedochází k deformaci tvaru kružnice).

Směrové indikátory

Směrové indikátory indikují směr změny velikosti nebo polohy grafu.

Nastavení směrových indikátorů se provádí automaticky při zaměření horizontálního nebo vertikálního posuvníku nebo stisknutí klávesy Left, Right, Up, Down.

Posouvání grafu

Pro posouvání grafu slouží horizontální a vertikální posuvník. Citlivost se automaticky přizpůsobuje měřítku zvětšení. Posuvník lze ovládat myší nebo klávesami:

Left	posun doleva

Right	posun doprava

Up	posun nahoru

Down	posun dolů

Zvětšování a zmenšování grafu

Implicitně se zobrazují grafy přehledové s optimální velikostí grafu. Grafy lze zvětšovat i zmenšovat postupně v krocích dle hodnoty nastavené v rozbalovacím seznamu pro míru zvětšení v procentech.

Pro změnu měřítka zobrazení slouží tlačítka Zvětšit a Zmenšit. Tato tlačítka reaguji v závislosti na tom, který ze směrových indikátorů je aktivní.

Obnovit přehledové zobrazení (implicitní velikost a polohu grafu) lze pomocí tlačítka Obnovit velikost a polohu nebo pomoci klávesy mezerník..

Velikost a polohu lze dále měnit ohraničením výřezu tažením při stisknutém levém tlačítku myši. V závislosti na směru tažení ohraničujícího obdélníku je provedena následující akce:

zvětšení	(tažení směrem doprava dolů),

obnovení	(tažení ostatními směry).

Klávesové zkratky pro změnu měřítka zvětšení

Ctrl+Left	zvětšení v horizontálním směru

Ctrl+Right	zmenšení v horizontálním směru

Ctrl+Up	zvětšení ve vertikálním směru

Ctrl+Down	zmenšení ve vertikálním směru

Poznámka:	Přidržíme-li současně klávesu shift, budou se provádět změny velikosti nebo polohy v pětinásobně hrubších krocích.

Barva grafu

Pro nastavení barvy spojnic bodů grafu, pozadí grafu a barvy nitkového kříže slouží tlačítko Nastavit barvy. Toto tlačítko zobrazí kontextové menu s nabídkami:

EMcalc umožňuje pracovat současně s 16 barvami spojnic bodů grafu, jejichž barevný odstín lze uživatelsky měnit pomocí standardního dialogu pro nastavení barvy (využívá se nastavení šestnácti vlastních barev).

Nabídka Odstíny šedé přepíná mezi barevným grafem a odstíny šedé. Nabídka Obnovit původní barvy umožní obnovení implicitních barev.

Import dat z textového souboru

Tlačítko Načíst z txt souboru slouží pro import datové řady z textového souboru. Předpokládá se, že data tvoří jedinou datovou řadu. Obsahuje-li soubor jeden sloupec numerických dat, tvoří tyto souřadnici y grafu, přičemž souřadnice x jsou rovny pořadovému číslu načtené hodnoty.

Jsou-li k dispozici dva sloupce numerických hodnot, je první sloupec interpretován jako x-ová souřadnice a druhý sloupec jako y-ová souřadnice bodů datové řady.

Kopírování grafiky

Pro přenos bitmapy grafu do ostatních aplikací Windows pomocí schránky Windows slouží tlačítko Kopírovat do schránky. Podporovány jsou následující tři grafické formáty, jak ukazuje obrázek:

Zatímco standardní klávesová zkratka Alt+PrintScr zkopíruje do schránky Windows obsah celého okna s grafem včetně ovládacích prvků a rámečku okna, nabídky Kopírovat zkopírují do schránky pouze obrázek grafu datové řady (bez rámečku a titulku okna).

Nabídka Data stavového řádku zkopíruje hodnoty ze stavového řádku do schránky Windows. To je užitečné zejména v režimu snímání souřadnic a měření vzdáleností.

Uložení grafiky do souboru

Pomocí tlačítka Uložit do souboru se provádí ukládání grafiky do diskového souboru. Podporovány grafické formáty: bmp (bitmapa), wmf (metasoubor) a emf (rozšířený metasoubor).

Tisk grafiky

Tlačítko Tisk zařadí tisk bitmapy obrázku do tiskové fronty tiskárny. Velikost vytisknutého obrázku bude záviset na nastaveném formátu tiskové stránky.

Nitkový kříž

Pro snadnější odečítání hodnot souřadnic grafu je k dispozici nitkový kříž. Souřadnice středu nitkového kříže se průběžně vypisují ve fyzikálních jednotkách pro obě souřadnice.

Výběr grafu datové řady (index grafu)

  Při různých manipulacích s grafem datové řady potřebujeme provést výběr grafu - určit index vybrané řady. Indexy grafů datových řad jsou číslovány od jedničky vzestupně. Index grafu vybrané řady se zobrazuje v políčku rozbalovacího seznamu. Při procházení rozbaleným seznamem pomocí kláves Up, Down se všechny grafy zobrazí v nevýrazně šedé barvě, přičemž graf vybrané řady je zvýrazněn. Po ukončení výběru je třeba klepnout myší dovnitř grafu, aby byly grafy zobrazeny opět barevně.

Současně se zaměřením (fokusací) rozbalovacího seznamu indexů grafů se posuvný jezdec aktivuje do režimu indikace indexu grafu. Je-li posuvný jezdec zaměřen, lze index vybraného grafu měnit i klávesami Up, Down.

Snímání souřadnic a měření vzdáleností

Při stisknutém tlačítku Snímat souřadnice bude při pohybu posuvného jezdce pohyb nitkového kříže sledovat souřadnice bodů datové řady a ve stavovém řádku budou zobrazeny skutečné hodnoty souřadnic ve fyzikálních jednotkách.

Je-li navíc ještě stisknuto tlačítko Měřit vzdálenosti, bude aktuální poloha nitkového kříže fixována a zobrazen bude další nitkový kříž sledující pohyb posuvného jezdce. Současně s tím budou vypisovány hodnoty absolutních a relativních souřadnic středů obou nitkových křížů.

Animace parametrických grafů

Pomocí tlačítka Animovat lze parametrické grafy soustavy datových řad zobrazovat postupně pro jednotlivé hodnoty parametru, a to automaticky s nastaveným časovým intervalem.

Tlačítkem Skrýt nevybrané řady lze pak provádět animaci ručně pomocí posuvného jezdce. Název a aktuální hodnota parametru datové řady se zobrazuje ve stavovém řádku. Takto lze např. názorně provádět citlivostní analýzu datové řady v závislosti na změně hodnot zkoumaného parametru.

Vytváření grafických sestav

Pomocí tlačítka Přidat datovou řadu lze postupně rozšiřovat množinu načtených datových řad a vykreslit grafický průběh souřadnic jejich prvků.

Datovou řadu lze z grafické sestavy opět vyjmout pomocí tlačítka Odebrat datovou řadu.


Výstupní okno

V rámci vykonávání řešení úloh prostředky příkazového interpretu BASIC implementovaného v progrmu EMcalc lze pomocí instrukce print směrovat výstup výpočtů do okna s textovým editorem k dalšímu zpracování. Zde je ukázka použití:

Programově lze obsah okna vymazat instrukcí cls. Výstup lze zarovnávat do sloupců vkládáním znaků tabulátor do formátovacího řetězce příkazu print.

Pomocí formátovacích specifikátorů lze např. provádět zaokrouhlování na požadovaný počet platných či desetinných míst apod.


Výstupní soubor

Je-li třeba generovaná data vyexportovat do diskového souboru, je třeba v dialogovém oknu Parametry datové řady zaškrtnout políčko Vytvořit soubor a nastavit požadované parametry pro zápis do souboru.

Zde je uveden fragment vyexportovaného souboru:

45570  1.215  0.000  0.819

45571  1.215  0.000  0.820

45572  1.216  0.000  0.821

45573  1.216  0.000  0.822

45574  1.216  0.000  0.823

45575  1.216  0.000  0.824

Chyby při zápisu do souboru

Příčiny nejčastějších chyb při zápisu do souboru jsou následující:

•	médium nebo disk je chráněn proti zápisu,

•	nedostatek místa na médiu nebo disku.


Historie výpočtů

EMcalc od verze 1.1 umožňuje ukládání historie výpočtu do externího souboru .log, což umožňuje sledovat všechny výpočty prováděné EMcalcem a archivovat je pro pozdější analýzu. S tímto souborem se pracuje stejně jako s každým jiným textovým souborem, tj. prohlížet jej můžete např. v Notepadu.

Historii výpočtů lze také sledovat v oknu Historie výpočtů:

Archivaci výpočtů lze přirovnat k registrační kalkulačce, která tiskne výsledky výpočtů na pásku. Zde je páska nahrazena log souborem. Pokud aktivujete volbu ukládání historie výpočtů, nebudete již nikdy váhat, jaké výpočty jste vlastně použili pro získání určitých výsledků, vše najdete v log souboru.

Je možné nastavit ukládání pouze výsledků ale i kompletních výrazů včetně číselné hodnoty proměnných. Následující příklad ukazuje segment log souboru:

12*23 = 276

sin(2*pi) = 0

U=I*R = 200

I=10

R=20

1+1 = 2

3*2 = 6

Rs=(Q-1)*Q^T*P/(Q^T-1) = 1,06667

P=1

Q=2

T=4

Historii výpočtů můžete samozřejmě vytisknout jako každý jiný soubor a je samozřejmě možné části log souboru kopírovat přes schránku do jiných programů, např. textového editoru.

Log soubor je psán od nejstaršího záznamu k nejnovějšímu, tzn. že poslední výpočet je na posledním řádku a nejstarší archivovaný výpočet je na začátku souboru.

Více informací naleznete pod heslem Nastavení programu.


Integrované prostředí

Programování úloh

EMcalc obsahuje nadstavbu s podpůrnými nástroji, které z aplikace EMcalc činí programovatelnou kalkulačku. Tyto nástroje dohromady tvoří integrované prostředí, které obsahuje:

•	textový editor,

•	příkazový interpret pro provádění řídících instrukcí,

•	ovládací panel pro ovládání příkazového interpretu,

•	prostředky pro ladění úloh,

•	knihovna pro archivaci úloh s pokročilými funkcemi.

Význačnými rysy této nadstavby jsou zejména:

•	provázanost s ostatními moduly programu EMcalc,

•	podrobná uživatelská a referenční dokumentace,

•	příklady řešených úloh.

Uvedené nástroje jsou přístupné z okna Knihovna výrazů. Pro psaní textu úloh slouží textový editor, který slouží též pro psaní seznamu proměnných k matematickým výrazům a k psaní vysvětlivek či poznámek k úlohám

Upozornění:	Ovládací panel pro práci s příkazovým interpretem se aktivuje, pokud do sloupce Výraz napíšete klíčové slovo TASK.

Dva režimy práce s knihovnou výrazů

Knihovna výrazů umožňuje dva odlišné režimy práce s daty, které jsou v ní archivovány, a to v závislosti na tom, zda je ve sloupci Výraz na příslušném řádku uvedeno klíčové slovo TASK.

Tento obrázek ukazuje normální režim práce s matematickými výrazy:

V tomto režimu používá editor vysvětlivek (pravé dolní okno) indexové proporcionální písmo Indexed. Následující obrázek ukazuje místní nabídku editoru vysvětlivek:

Poznámka:	Kontextové menu pro vkládání indexů lze vyvolat i samostatně pomocí klávesové zkratky Ctrl+I.

Následující obrázek má místo výrazu uvedeno klíčové slovo TASK, které inicializuje interpretační režim příkazového interpretu BASIC.

Klíčové slovo TASK odblokovává skupinu tlačítek na panelu nástrojů, které slouží k ovládání příkazového interpretu a zároveň mění druh písma na neproporcionální, které je při programování obvyklejší (umožňuje zarovnání odsazených bloků textu). Zároveň se zablokuje tlačítko Použít, které jinak slouží k přenesení výrazu do hlavního okna.

V tomto režimu slouží editor vysvětlivek (pravé dolní okno) jako editor úloh. Režim neumožňuje vkládání horních indexů, neboť editor používá místo písma Indexed neproporcionální písmo Fixedsys, které je pro psaní kódu úloh mnohem vhodnější:

Nabídka Vložit režim (rozumí se režim výpočtů) umožňuje v režimu psaní textu interpretovaných úloh vložení řádku s příkazem mode, kde jsou předvyplněny stavové proměnné podle aktuálního nastavení na tlačítkové liště [image] hlavního okna.

Nabídka Vložit stav oken umožňuje vložit stav (velikost a polohu) otevřených nemodálních oken do editoru textu úloh.

Společná správa řešených úloh

Knihovna výrazů umožňuje spravovat kromě matematických výrazů i naprogramované úlohy. K dispozici je tedy pro oba režimy práce veškerý komfort, který knihovna poskytuje (strukturování kategorií, vyhledávání podle názvu kategorie nebo podle textového řetězce, export a import řešených úloh z distribuovaných balíčků apod.


Příkazový interpret

Co je příkazový interpret

Příkazový interpret je nadstavba programu EMcalc, která zajišťuje řízení řešení posloupnosti matematických formulí pomocí speciálních instrukcí (jazykových konstrukcí). Názvy instrukcí a syntaxe jejich zápisu vychází z terminologie programovacího jazyka BASIC.

Stukturované programování úloh

Příkazový interpret programu EMcalc podporuje principy strukturovaného programování metodou shora dolů. Podporovány jsou následující typy jazykových konstrukcí:

•	sekvenční	- provádění v blocích,

•	podmíněný	- struktura větvení,

•	iterační	- příkazy cyklu,

•	vnoření	- bloky instrukcí lze do sebe zanořovat.

Poznámka:	Příkaz skoku goto je sice podporován, jeho použití se však nedoporučuje, neboť odporuje principům strukturovaného programování a činí text úlohy nepřehledným.

Dvouvrstvé řízení úloh

Matematické úlohy, které jsou řízeny příkazovým interpretem jsou v podstatě řízeny ve dvou vrstvách neboť příkazový interpret byl koncipován jako nadstavba lexikálního analyzátoru výrazů. Toto řešení má jeden důležitý aspekt:

Upozornění:	Pokud nejsou instrukce syntakticky správně zapsány, předává příkazový interpret řízení lexikálnímu analyzátoru výrazů, který se snaží vykonávaný řádek instrukcí interpretovat jako matematický výraz.

Je nutno dbát na důsledné dodržování syntaxe jednotlivých instrukcí.


Klíčová slova

podmínka

if	uvádí relační podmínku příkazu větvení if then else

then	uvádí příkaz nebo blok příkazů, který se vykoná při splnění relační podmínky

else	uvádí příkaz nebo blok příkazů, který se vykoná není-li splněna relační podmínka

endif	konec bloku příkazů instrukce if then else

cyklus

for	uvádí podmínku iterační cyklus for next

to	uvádí horní hranici řídící proměnné cyklu for next

step	specifikuje iterační krok cyklu for next

next	konec bloku iteračního cyklu for next

while	uvádí iterační cyklus while loop s relační podmínkou na začátku cyklu

loop	konec bloku iteračního cyklu while loop

repeat	uvádí iterační cyklus repeat until s relační podmínkou na konci cyklu

until	konec bloku iteračního cyklu repeat-until

break	přerušení iteračního cyklu

continue	pokračování další iterací, zbylé instrukce v bloku se nevykonají

skok

goto	podmíněný/nepodmíněný skok na specifikované návěští

label	cílové návěští příkazu skoku goto

podprogram

sub	hlavička podprogramu

gosub	volání podprogramu

return	návrat z podprogramu

def	hlavička definice funkce

result	přiřazení návratové hodnoty funkce

enddef	konec bloku definice funkce

call	volání funkce se specifikovaným názvem

exit	opuštění těla podprogramu, těla funkce, těla hlavního programu

okno

open	otevření nemodálního okna aplikace

close	zavření nemodálního okna aplikace

klávesnice

delay	časová prodleva mezi dvěma instrukcemi

keybd	simuluje stisk klávesy nebo klávesové zkratky

enter	simuluje vstup řetězce znaků z klávesnice a/nebo stisk Enter

vstup, výstup

input	vstup číselné nebo textové hodnoty pomocí dialogového okna

enter	simuluje vstup řetězce znaků z klávesnice a/nebo stisk Enter

data	vkládá specifikovaná data do formuláře statistické analýzy

print	formátovaný výstup do okna textového editoru

plot	výstup souřadnic bodů do datové řady grafiky

msg	formátovaná zpráva pomocí dialogového okna

cls	vymaže editor výstupního okna

soubor

open	otevření textového souboru pro čtení nebo zápis

not eof	test konce souboru při čtení ve smyčce while...loop

input	čtení z textového souboru

print	zápis do textového souboru

close	zavření souboru

režim

reset	provede reset

clear	vynuluje všechny proměnné

mode	nastaví režim výpočtu

pause	nastaví podmíněný/nepodmíněný bod přerušení (pro ladící režim)

program

begin	vstupní bod těla programu úlohy

end	koncové návěští těla hlavního programu

help	vyvolá specifikované téma nápovědy

Poznámka:	Klíčová slova mohou být zapsána malými nebo velkými písmeny. Tak například zápis ENDDEF, enddef, a EndDef znamená jedno a totéž klíčové slovo.

Klíčová slova mají v interpretovaných úlohách specifický význam, a proto se jako název proměnné nesmí použít klíčové slovo z tohoto seznamu.


Instrukce interpretu BASIC

Instrukce příkazového interpretu BASIC jsou jazykové konstrukce, které slouží k řízení běhu úlohy při jejím řešení. Jednotlivé instrukce sestávají z klíčových slov, podmínek a příkazů. Příkazem může být opět instrukce. Tento princip umožňuje zanořování instrukcí do sebe a vytváření poměrně složitých struktur pro řízení úloh.

Při zápisu instrukcí je nutno dbát na bezchybný syntaktický zápis. U každé instrukce je uvedena syntaxe a sémantika (způsob psaní a účel použití).

Klíčová slova Instrukcí implementovaných v programu EMcalc lze dle jejich významu dělit na skupiny dle oblasti použití takto:

•	podmínky,

•	iterační cykly,

•	skoky na návěští,

•	podprogramy,

•	uživatelské funkce,

•	ovládání oken,

•	generování zpráv klávesnice,

•	vstup dat (kód úlohy, dialogové okno, diskový soubor),

•	výstup dat (okno textového editoru, dialogové okno nebo diskový soubor),

•	režim výpočtu.

Poznámka:	Pokud potřebujete nápovědu k určitému klíčovému slovu, umístěte kurzor v editoru textu úlohy na slovo, k němuž požadujete nápovědu a stiskněte klávesovou zkratku Alt+F1.


Instrukce  IF...THEN...ELSE...ENDIF

Příklady:  příkaz,  příkazový blok,  vnořený příkazový blok

Účel	Podmíněné vykonání instrukce nebo bloku instrukcí

Syntaxe	if podmínka then příkaz

   	nebo

if podmínka then příkaz1 else příkaz2

nebo

if podmínka then

blok příkazů

else

blok příkazů

endif

Popis	Tato konstrukce umožňuje podmíněné vykonání příkazů. Podmínka se uvádí za klíčovým slovem if a zapisuje se ve formě relačního výrazu, kde na místě operandů mohou být čísla, konstanty, proměnné a jednoduché nebo složené výrazy. Mezi operandy relačního výrazu je pak relační operátor.

Relační podmínka je výraz logického typu a jeho hodnotou je logická nula - False (podmínka není splněna) nebo logická jednička - True (podmínka je splněna). Hodnota relačního výrazu určuje, zda se vykoná příkaz za klíčovým slovem then (v případě splnění podmínky) nebo příkaz za klíčovým slovem else (v případě že podmínka splněna není).

Bloky	Pokud je příkaz složen z posloupnosti příkazů, jedná se o blok příkazů. Blok příkazů musí být uzavřen klíčovým slovem endif.

Za blok příkazů se považuje situace, kdy za klíčovým slovem then nebo za klíčovým slovem else není na stejném řádku uveden žádný příkaz.

Příkazy	Příkazem může být matematický výraz, který se má vyhodnotit, přiřazení hodnoty některé proměnné nebo instrukce interpretu.

Zanoření	Podmíněné příkazy lze do sebe zanořovat. Tak lze vytvářet konstrukce s poměrně složitou strukturou podmínek.

Poznámka:	Pro vyjádření operandů relačních podmínek lze použít veškeré matematické funkce zabudované v programu EMcalc.

Relační operátory

Relační operátory podporované programem EMcalc jsou:

=	...rovnost operandů

<>	...nerovnost operandů

<	...je menší

>	...je větší

<=	...je menší nebo rovno

>=	...je větší nebo rovno

Logické operátory

V programovacích jazycích se běžně používají logické operátory not, and, or, xor pro vytváření složitých konstrukcí relačních podmínek. Některé ekvivalentní konstrukce lze vytvořit náhradním způsobem, např. pomocí zanořeného bloku.

Upozornění:	Současná verze programu EMcalc nepodporuje logické operátory not, and, or, xor. Je však možné, že v některém příštím upgrade programu EMcalc budou i tyto podporovány.

Podmíněné instrukce

Podmíněné instrukce jsou instrukce, které se vykonají na základě výsledku vyhodnocení relační podmínky, která jim předchází. Program EMcalc podporuje následující konstrukce podmíněných instrukcí:

if podmínka then for...next	podmíněný iterační cyklus for-next

if podmínka then repeat...until	podmíněný iterační cyklus repeat-until

if podmínka then while...loop	podmíněný iterační cyklus while-loop

if podmínka then break	podmíněné přerušení iteračního cyklu

if podmínka then continue	podmíněné pokračování další iterací

if podmínka then goto návěští	podmíněný skok na specifikované návěští

if podmínka then gosub podprogram	podmíněné vykonání podprogramu

if podmínka then call funkce	podmíněné volání uživatelské funkce

if podmínka then open okno	podmíněné otevření nemodálního okna

if podmínka then close okno	podmíněné zavření nemodálního okna

if podmínka then delay msec	podmíněná časová prodleva před vykonáním další instrukce

if podmínka then keybd klavesa	podmíněná simulace stisku klávesy nebo klávesové zkratky

if podmínka then input parametry	podmíněný vstup uživatelské hodnoty v dialogovém oknu

if podmínka then print parametry	podmíněný výstup formátovaných hodnot do textového editoru

if podmínka then cls	podmíněné vymazání obsahu editoru výstupního okna

if podmínka then plot parametry	podmíněný výstup souřadnic bodů do datové řady grafiky

if podmínka then msg parametry	podmínění zobrazení zprávy pomocí dialogového okna

if podmínka then reset	podmíněné provedení příkazu reset

if podmínka then clear	podmíněné vynulování obsahu všech proměnných

if podmínka then mode parametry	podmíněné nastavení režimu výpočtu

if podmínka then pause	podmíněný bod přerušení (pozastavení běhu s podmínkou)

if podmínka then end	podmíněné ukončení běhu úlohy

Poznámka:	Všechny tyto konstrukce je samozřejmě možné zapsat blokovým zápisem, tento zápis na jednom řádku však optimalizuje rychlost provádění úlohy a také zpřehledňuje zápis.


Instrukce  FOR...NEXT

Příklady:  krok = 1,  kladný krok <> 1,  záporný krok

Účel	Iterační cyklus s pevným počtem iterací

Syntaxe	for ŘídícíProměnná = PočátečníHodnota to KonečnáHodnota [step Krok]

blok příkazů

next

Popis	Cyklus for next je řídící strukturou umožňující opakované vykonávání bloku příkazů (tělo cyklu) s předem známým počtem opakování (iterací). Řídící proměnná je čítačem počtu iterací, která je při vstupu do řídící struktury inicializována počáteční hodnotou a při každé další iteraci svou hodnotu zvyšuje o hodnotu kroku. Počet iterací je dán konečnou hodnotou řídící proměnné a velikostí iteračního kroku.

Specifikace iteračního kroku je nepovinná, není-li uvedena je iterační krok roven jedné. Počáteční hodnota, konečná hodnota a krok mohou být zadány číselnou hodnotou, názvem proměnné nebo výrazem. Tyto hodnoty nemusí být celočíselnými hodnotami, mohou obsahovat desetinnou část.

Podle hodnoty iteračního kroku mohou nastat tyto případy:

1. iterační krok > 0	inkrementace řídící proměnné

2. iterační krok < 0	dekrementace řídící proměnné

3. iterační krok = 0	nekonečná smyčka (tomu je třeba se vyhnout)

Upozornění:	Řídící proměnné se uvnitř cyklu nesmí přiřazovat hodnota, změnily by se tím podmínky dané při vstupu do řídící struktury (počet iterací).

Plynulost provádění příkazů v těle iteračního cyklu for...next lze ovlivnit vložením instrukce break případně continue do těla cyklu.

Syntaxe	if podmínka then break

if podmínka then continue

Vložením instrukce break bude při splnění podmínky uvozené klíčovým slovem if iterační cyklus  bezprostředně ukončen.

Vložením instrukce continue se při splnění podmínky uvedené za klíčovým slovem if přeskočí zbývající příkazy v těle iteračního cyklu a cyklus pokračuje následující iterací.

Chyby	Není-li cyklus ukončen klíčovým slovem next, zobrazí se chybové hlášení a zvýrazní se řádek se záhlavím neukončeného cyklu. V případě vnořených cyklů for...next nemusí být záhlaví cyklu správně identifikováno, jelikož chyba mohla nastat v libovolném z nich.


Instrukce  WHILE...LOOP

Příklad

Účel	Iterační cyklus s podmínkou na začátku cyklu

Syntaxe	while podmínka

blok příkazů

loop

Popis	Cyklus while loop je řídící strukturou umožňující opakované vykonávání bloku příkazů v závislosti na pravdivosti podmínky uvedené na začátku iteračního cyklu. Není-li podmínka splněna na samém začátku při vstupu do řídící struktury, nevykoná se tělo cyklu ani jednou.

Speciální použití instrukce while při čtení ze souboru:

Syntaxe	while not eof #1

input #1, proměnná

blok příkazů (práce s načtenou proměnnou)

loop

Popis	Tato konstrukce se používá obecně při čtení z textového souboru. Znamená podmínku vykonávání bloku příkazu dokud není dosaženo konce souboru. Soubor musí být předtím otevřen příkazem:

open "Nazev souboru" for input as #1

a uvnitř bloku musí být obsažena instrukce

input #1, proměnná

která zajistí posunutí ukazatele v otevřeném souboru, jinak se jedná o nekonečnou smyčku.

Upozornění:	V těle cyklu while se nesmí zapomenout na přiřazení ovlivňující hodnotu podmínky, jinak program uvázne v nekonečné smyčce, protože by podmínka nepřestala platit.

Plynulost provádění příkazů v těle cyklu while...loop lze ovlivnit vložením instrukce break nebo continue do těla cyklu.

Syntaxe	if podmínka then break

if podmínka then continue

Vložením instrukce break způsobí, že při splnění podmínky uvozené klíčovým slovem if bude cyklus bezprostředně ukončen.

Vložení instrukce continue má za následek, že při splnění podmínky uvedené za klíčovým slovem if, se přeskočí zbývající příkazy v těle cyklu a řízení se předá na začátek cyklu.

Chyby	Není-li cyklus ukončen klíčovým slovem loop, zobrazí se chybové hlášení a zvýrazní se řádek se záhlavím neukončeného cyklu. V případě vnořených cyklů while...loop nemusí být záhlaví cyklu správně identifikováno, jelikož chyba mohla nastat v libovolném z nich.


Instrukce  REPEAT...UNTIL

Příklad

Účel	Iterační cyklus s podmínkou na konci cyklu

Syntaxe	repeat

blok příkazů

until podmínka

Popis	Cyklus repeat until je řídící strukturou umožňující opakované vykonávání bloku příkazů dokud není splněna podmínka uvedené na konci iteračního cyklu. Jelikož je podmínka uvedena na konci cyklu, provede se blok příkazů v těle cyklu nejméně jednou.

Upozornění:	V těle cyklu repeat se nesmí zapomenout na přiřazení ovlivňující hodnotu podmínky, jinak program uvázne v nekonečné smyčce, pokud by podmínka měla hodnotu False (podmínka by nikdy nebyla splněna).

Plynulost provádění příkazů v těle cyklu repeat...until lze ovlivnit vložením instrukce break nebo continue do těla cyklu.

Syntaxe	if podmínka then break

if podmínka then continue

Vložením instrukce break způsobí, že při splnění podmínky uvozené klíčovým slovem if bude cyklus bezprostředně ukončen.

Vložení instrukce continue má za následek, že při splnění podmínky uvedené za klíčovým slovem if, se přeskočí zbývající příkazy v těle cyklu a řízení se předá na začátek cyklu.

Chyby	Není-li cyklus ukončen klíčovým slovem until, zobrazí se chybové hlášení a zvýrazní se řádek se záhlavím neukončeného cyklu. V případě vnořených cyklů repeat...until nemusí být záhlaví cyklu správně identifikováno, jelikož chyba mohla nastat v libovolném z nich.


Instrukce  BREAK, CONTINUE

Příklady:  break, continue

Plynulost provádění iteračních cyklů for...next, while...loop, repeat...until lze upravit vložením instrukce break (přerušit) případně continue (pokračovat) do těla iteračního cyklu.

Syntaxe	if podmínka then break

if podmínka then continue

Popis	Instrukce break způsobí to, že při splnění podmínky uvozené klíčovým slovem if bude vykonávaný cyklus bezprostředně ukončen.

Instrukce continue způsobí to, že při splnění podmínka uvedené za klíčovým slovem if, se přeskočí zbývající příkazy v těle cyklu a řízení se předá na začátek cyklu.

Je-li instrukce break nebo continue umístěna mimo tělo cyklu, přeruší se na tomto místě k  běh programu a zobrazí se chybové hlášení.

Viz také	for...next

while...loop

repeat...until

Upozornění:	Instrukce break a continue se vztahují k nejvíce zanořenému cyklu, který se právě vykonává. Je-li třeba obsloužit více než jednu úroveň zanoření, nelze to provést skokem ven pomocí instrukce goto ale postupným ošetřením každé úrovně zanoření instrukcemi break případně continue.


Instrukce  GOTO, LABEL

Příklad

Účel	Skok na specifikované návěští

Syntaxe	goto návěští

Popis	Příkaz goto předává řízení na místo, kde se nachází návěští specifikované v příkaze goto.

Návěští se specifikuje identifikátorem s dvojtečkou jako prefixem a umisťuje se na začátek řádku. Nerozlišují se velká a malá písmena.

Upozornění:	Implementace příkazu goto v programu EMcalc neumožňuje umístění tohoto příkazu uvnitř bloku podmíněného příkazu if...then, řídících struktur iteračních cyklů a uživatelských funkcí.

Chyby	Jelikož skok dovnitř těchto struktur se považuje za hrubou chybu, neumožňuje příkazový interpret umístění návěští uvnitř těchto řídících struktur.

Poznámka:	Protože konstrukce příkazu goto odporuje principům strukturovaného programování, nedoporučuje se používání tohoto příkazu ve strukturovaných úlohách vůbec. Může se však hodit při řešení úloh sekvenčních a nestrukturovaných.


Instrukce  SUB...RETURN, GOSUB

Příklad

Účel	Definování podprogramu

Syntaxe	sub NázevPodprogramu

blok příkazů

return

Popis	Podprogramy slouží k vykonávání části programu, které lze volat odkudkoli. Klíčové slovo sub uvádí záhlaví podprogramu, konec je označen klíčovým slovem return. Příkazy mezi klíčovými slovy sub a return tvoří tělo podprogramu.

Podprogramy se umísťují za klíčové slovo end tedy až za tělo hlavního programu.

Chyby	Není-li podprogram ukončen klíčovým slovem return, zobrazí se chybové hlášení a zvýrazní se řádek se záhlavím podprogramu.

Volání podprogramu

Volání podprogramu se provádí pomocí instrukce gosub.

Syntaxe	gosub NázevPodprogramu.

Poznámka:	Konstrukce sub...return je častou konstrukcí programovcacího jazyka BASIC. Členění programu na podprogramy jednak program zpřehledňuje, jednak umožňuje opakované vykonávání bloku instrukcí.


Instrukce  DEF...ENDDEF, CALL

Příklad

Účel	Definování uživatelské funkce

Syntaxe	def NázevFunkce (seznam formálních parametrů)

blok příkazů

přiřazení hodnoty funkce

enddef

Popis	Uživatelské funkce jsou vyšší formou podprogramu. Umožňují definování speciálních matematických funkcí a tím vytváření určité nadstavby matematického aparátu, kterým je EMcalc standardně vybaven.

Dříve než je funkce volána musí být deklarována. Deklarace funkce se uvádí v deklarační sekci na začátku programu před klíčovým slovem begin, uvádějící tělo hlavního programu.

Uživatelská funkce má návratovou hodnotu, která při návratu z funkce může ale také nemusí být použita. Návratovou hodnotu funkce lze např. přiřadit proměnné nebo ji lze použít v konstrukci řídících struktur jako jsou podmíněné příkazy if..then...else nebo na místě výrazů v konstrukcích iteračních cyklů apod.

Parametry	Při deklaraci funkce lze volitelně uvést seznam formálních parametrů, které jsou navzájem oddělené čárkou. Výčet parametrů se vkládá do závorkového páru.

Počet formálních parametrů v definici uživatelské funkce (uvozené klíčovým slovem def) musí být shodný se skutečným počtem parametrů při volání funkce (příkazem call).

Upozornění	Nikdy nezapomeňte přiřadit funkci její návratovou hodnotu. Funkci se přiřazuje návratová hodnota před opuštěním těla funkce tak, že identifikátoru funkce nebo interní proměnné Result se přiřadí hodnota.

Volání uživatelské funkce

Syntaxe	call NázevFunkce (seznam skutečných parametrů)

Parametry	Při volání funkce se uvádí v závorkách seznam skutečných parametrů, které předávají svou hodnotu formálním parametrům dovnitř těla funkce. Počet skutečných a formálních parametrů musí být shodný.

Pozor !!	Na rozdíl od výčtu formálních parametrů, které se oddělují čárkou, musí být skutečné hodnoty jednotlivých parametry při volání funkce navzájem odděleny středníkem.

Rozsah platnosti proměnných

Program EMcalc nepodporuje lokální proměnné, tak jak je to obvyklé ve vyšších progrmovacích jazycích. Veškeré proměnné proto mají globální platnost.


Instrukce  EXIT

Příklad

Plynulost provádění podprogramů sub...return a uživatelských funkcí def...enddef lze upravit vložením instrukce exit (opustit) do těla podprogramu uzavřeného klíčovými slovy sub...return nebo do těla uživatelské funkce uzavřené klíčovými slovy def...enddef.

Syntaxe	if podmínka then exit

Popis	Instrukce exit způsobí bezprostřední opuštění vykonávaného podprogramu nebo uživatelské  funkce, pokud bude splněna podmínka uvozené klíčovým slovem if.

Je-li instrukce exit umístěna mimo tělo podprogramu nebo uživatelské funkce - tedy v těle hlavního programu, ukončí se na tomto místě běh programu.

Viz také	sub...return

def...enddef

Poznámka:	Instrukce exit se vztahuje k nejvíce zanořenému podprogramu případně uživatelské funkce, která se právě vykonává. Je-li třeba obsloužit více než jednu úroveň zanoření, nelze to provést skokem ven pomocí instrukce goto ale postupným ošetřením každé úrovně zanoření instrukcemi exit.


Instrukce  OPEN, CLOSE

Příklady:  zobrazení okna, animace okna, zápis do souboru, čtení ze souboru

Účel	Řízení stavu nemodálního okna (formuláře) aplikace EMcalc

Syntaxe	open NázevFormuláře [, Left, Top, Width, Height, Status]

close NázevFormuláře

Popis	Příkaz open umožňuje zobrazení nemodálního okna specifikovaného názvu s možností řízení jeho velikosti, polohy a stavu zobrazení.

Příkaz close zavře nemodální okno a uvolní alokovanou paměť

Nemodální okna aplikace jsou všechna okna aplikace, která nejsou dialogovými okny s výhradním zaměřením (fokusací). Dialogová okna neumožňují předání zaměření (fokusu) jinému oknu, dokud nejsou uzavřena. Nemodální okna mohou libovolně přijímat a opět předávat své zaměření.

Formuláře	MainForm	EMcalc - hlavní okno aplikace

StatForm	Statistická analýza

GrForm	Graf datové řady

ExprForm	Knihovna výrazů

FuncForm	Seznam funkcí

VarForm	Seznam proměnných

LogForm	Historie výpočtů

EdForm	Výstupní okno s textovým editorem

SplashForm	Okno s prezentační grafikou

Parametry	Left	vzdálenost levého hrany okna od levého okraje obrazovky v bodech

Top	vzdálenost horního hrany okna od horního okraje obrazovky v bodech

Width	šířka okna v obrazovkových bodech

Height	výška okna v obrazovkových bodech

Parametry Left, Top, Width, Height se zadávají v daném pořadí. Parametry které mají zůstat nezměněny se pouze oddělí čárkou; pokud jsou ve výčtu parametrů na jejich konci, lze je zcela vypustit.

Příklady:	open edform,0,0	umístí okno do levého horního rohu obrazovky

open edform,0	přirazí okno k levému okraji obrazovky

open edform,,0	přirazí okno k hornímu okraji obrazovky

open edform,,,500	nastaví šířku okna na 500 bodů

open edform,,,,200	nastaví výšku okna na 200 bodů

Relativní změny parametrů Left, Top, Width, Height se zadávají v daném pořadí tak, že před číselnou hodnotu se uvede prefix plus nebo mínus..

Příklady:	open edform,+50	posune okno o 50 bodů doprava

open edform,,-20	posune okno o 20 bodů nahoru

open edform,,,+200	zvětší šířku okna o 200 bodů

open edform,,,,+70	zvětší výšku okna o 70 bodů

Status	Parametr specifikující stav okna. Může nabývat následujících hodnot:

Show	okno se má zobrazit

Hide	okno se má skrýt

Minimize	okno se má minimalizovat

Maximize	okno se má maximalizovat

Restore	okno má obnovit svou velikost

Topmost	okno má být nejsvrchnějším oknem

Normal	okno má zrušit vlastnost TOPMOST

Active	okno se má aktivovat

TopLeft	okno se má zobrazit v levém horním rohu obrazovky

BottomLeft	okno se má zobrazit v levém dolním rohu obrazovky

TopRight	okno se má zobrazit v pravém horním rohu obrazovky

BottomRight	okno se má zobrazit v pravém dolním rohu obrazovky

Center	okno se má zobrazit uprostřed obrazovky

Poznámka:	Pomocí příkazů open a close můžete programově ovládat zobrazování oken podle Vašich specifických požadavků. Výčet parametrů může být neúplný nebo může být zcela vynechán.

Otevření souboru

Pomocí klíčového slova open se dále provádí diskové operace otevření textového souboru pro režim čtení ze souboru a pro režim zápis do souboru.

Syntaxe	open "NázevSouboru" for input as #1

open "NázevSouboru" for output as #1

nebo

open file for input as #1

open file [for output] as #1

Čtení	Příkaz open umožňuje otevření textového souboru pro čtení ze souboru, který se provádí pomocí příkazu input. Pokud soubor specifikovaného jména neexistuje, zobrazí se chybové hlášení.

Zápis	Příkaz open umožňuje otevření textového souboru pro zápis do souboru, který se provádí pomocí příkazu print. Pokud soubor specifikovaného jména již existuje, bude přepsán, pokud neexistuje, bude vytvořen.

Klíčová slova for output lze vynechat, neboť režim zápisu do souboru je implicitní.

Název	Parametr název NázevSouboru musí být uzavřen do uvozovek. Název souboru může obsahovat úplnou specifikaci přístupové cesty k souboru včetně označení síťové/diskové jednotky. Pokud je uveden jen název souboru, bude umístěn do složky, odkud byl program EMcalc spuštěn.

Specifikace názvu souboru nesmí obsahovat znaky z množiny:  ;,=+<>|"[]  {středník, čárka, rovnítko, plus, otevírací ostrá a hranatá závorka, zavírací ostrá a hranatá závorka, rozdělovač (pajpka), uvozovka, }

Pokud chcete mít možnost specifikovat název a umístění souboru za běhu úlohy pomocí standardního dialogu Otevřít soubor, uveďte místo specifikace názvu souboru klíčové slovo file zapsané bez uvozovek, jak uvedeno v syntaxi.

Číslo soub.	Kromě názvu souboru je třeba specifikovat logické číslo souboru v rozsahu 0..9 uvedené bezprostředně za znakem křížek (#). Současně lze mít otevřeno deset souborů pro zápis. Příkaz print, kterým se zápis do souboru provádí, pak musí obsahovat příslušné logické číslo souboru uvedené bezprostředně za znakem křížek (#).

Zavření souboru

Syntaxe	close #1

Popis	Příkaz close uzavře otevřený diskový soubor. Logické číslo souboru musí být shodné, jako při otevření souboru.

Upozornění:	Po dokončení všech vstupně výstupních operací je nutné soubor opět zavřít pomocí příkazu close, jinak může dojít ke ztrátě uložených dat.


Instrukce  DELAY

Příklad

Účel	Vložení časové prodlevy mezi vykonáním dvou instrukcí

Syntaxe	delay PočetMilisekund

Popis	Příkaz delay umožňuje vložení časové prodlevy se specifikovaným počtem milisekund mezi dvě instrukce.

Poznámka:	Příkaz delay umožňuje vytváření různých efektů vyžadujících pozdržení instrukce na určitou dobu. Lze toho využít zejména v kombinací s příkazem keybd.


Instrukce  KEYBD

Příklad

Účel	Simulace stisku klávesy nebo klávesové zkratky, zaslání klávesové zprávy specifikovanému oknu

Syntaxe	keybd [NazevOkna] Znak | KlávesováZkratka

Popis	Příkaz keybd umožňuje simulovat stisk klávesy nebo generovat klávesové zkratky. Pokud není specifikován název okna (formuláře), tak jsou tyto události zpracovávány aktivním oknem. Specifikovat lze kombinaci kláves Shift, Ctrl, Alt. Názvy klávesových zkratek se tvoří podle následujících příkladů.

Příklad	keybd Ctrl+C

keybd Shift+Ctrl+V

keybd Alt+F4

keybd Q

keybd StatForm, Alt+A

Poznámka:	Příkaz keybd umožňuje vytváření různých efektů vyžadujících stisknutí klávesy nebo klávesové zkratky, zejména v kombinací s příkazem delay. Pro vytváření efektů při vkládání řetězce znaků do vstupních editačních polí je však vhodnější příkaz enter.


Instrukce INPUT

Příklady:  vstup z dialogu, vstup z textového souboru

Účel	Uživatelský vstup číselné nebo textové hodnoty pomocí dialogového okna

Syntaxe	input [#1] ["Výzva",] NázevProměnné [, ImplicitníHodnota]

Popis	Příkaz input umožňuje uživatelský vstup číselné hodnoty nebo textového řetězce pomocí dialogového okna nebo z textového souboru.

Soubor	Je-li specifikováno logické číslo souboru ve formátu #1, kde místo číslice 1 může být uvedena libovolná číslice v rozsahu 0..9, je vstup směrován z textového souboru. Soubor musí být otevřen pro čtení příkazem open s parametrem for input a po přečtení všech požadovaných hodnot opět uzavřen příkazem close, jinak dojde k zastavení běhu úlohy se zobrazením chybového hlášení.

Parametry	Oddělovačem jednotlivých parametrů je čárka.

Výzva je zpráva, která bude zobrazena jako výzva pro uživatele. Je to nepovinný parametr. Pokud je vynechán, zobrazí se jako výzva název proměnné následovaný rovnítkem.

Název proměnné je identifikátor proměnné, které bude přiřazena hodnota zadaná uživatelem. Je-li název proměnné zapsán v uvozovkách, bude vložená hodnota interpretována jako textový řetězec. Toho se s výhodou použije při zápisu textu matematické funkce předané uživatelské funkci def...enddef jako skutečný parametr (viz příklad FInt v knihovně výrazů pro numerickou integraci funkce).

Implicitní hodnota je přednastavená hodnota, kterou může uživatel akceptovat stiskem klávesy Enter. Pokud není implicitní hodnota uvedena, je rovna nule.

Poznámka	Jako implicitní hodnotu můžete napsat identifikátor proměnné. V tom případě bude implicitní hodnotou hodnota proměnné v okamžiku volání příkazu input.


Data

Příklad:  data

Účel	Vkládání numerických hodnot datové řady do formuláře statistické analýzy

Syntaxe	data hodnota

Popis	Příkaz data umožňuje programově řízené vkládání hodnot datové řady do formuláře statistické analýzy. Pokud je parametr příkazu data výraz, je tento před vložením vyhodnocen.

Příklad	data 25,36

data 4*pi*1E-7

data sin(x^2)

Poznámka:	Při programovém vkládání dat do formuláře statistické analýzy je nutno vypnout nastavení Enter vkládá data, aby případné pomocné výpočty, které EMcalc v průběhu běhu úlohy provádí, nebyly rovněž přidávány do datové řady.


Enter

Příklad:  enter

Účel	Efektní vkládání textového řetězce do vstupního pole Výraz nebo do vstupních polí pro proměnné

Syntaxe	enter [#X,] výraz

Popis	Příkaz enter umožňuje zpomalené vkládání posloupnosti znaků do vstupních polí s časovou prodlevou 50 msec mezi jednotlivými znaky (simulace funkce autorepeat klávesnice) a časové prodlevy 400 msec mezi jednotlivými řetězci.

Volitelným parametrem je adresace vstupního pole podle následujícího schématu:

#X	vstupní pole první proměnné

#Y	vstupní pole druhé proměnné

#A	vstupní pole třetí proměnné

atd.

Implicitně (bez adresace) se textový řetězec vkládá do vstupního pole Výraz.

Příklad	enter  (a-b)*cos(b/a*t)+d*cos((a-b)/a*t)...(a-b)*sin(b/a*t)-d*sin((a-b)/a*t)

enter  #X, 0..2*pi:pi/100

enter  #A, 1,234

Poznámka:	Tentýž efekt se dosáhne vypuštěním klíčového slova enter s tím rozdílem, že příkaz enter vkládá znaky zpomaleně (simuluje reálnou situaci vkládání znaků z klávesnice).


Help

Příklad:  help

Účel	Vyvolání specifického tématu nápovědy k programu EMcalc

Syntaxe	help klíčový_název_tématu_nápovědy

Popis	Příkaz help umožňuje programové vyvolání specifikovaného tématu nápovědy.

Příklad	help  statistická_analýza

Poznámka:	Tento příkaz je určen spíše pro podporu demonstračních příkladů tvůrce programu EMcalc, a proto nebude seznam klíčových názvů témat nápovědy zveřejněn.


Instrukce  PRINT, CLS

Příklady:  výstup do okna, výstup do textového souboru

Účel	Formátovaný výstup do výstupního okna EdForm s textovým editorem

Formátovaný výstup do textového souboru

Syntaxe	print ["FormátovacíŘetězec",] VýčetProměnných

print [#1] ["FormátovacíŘetězec",] VýčetProměnných

Popis	Příkaz print umožňuje formátovaný výpis obsahu proměnných do textového editoru výstupního okna EdForm.

Soubor	Je-li specifikováno logické číslo souboru ve formátu #1, kde místo číslice 1 může být uvedena libovolná číslice v rozsahu 0..9, je výstup směrován do textového souboru. Soubor musí být otevřen příkazem open a po provedení všech zápisů opět uzavřen příkazem close.

Parametry	Formátovací řetězec obsahuje text, který bude zobrazen spolu s formátovaným výpisem hodnot proměnných. Jako součást formátovacího řetězce lze uvést formátovací masku, kde lze specifikovat formát a přesnost zobrazení číselných hodnot. Podrobnou specifikaci formátovací masky naleznete pod heslem formátovací masky.

Výčet proměnných je seznam identifikátorů proměnných oddělených navzájem čárkami.

Příklad	print "napětí zdroje  U1 = %4.3f  [V]  ", U1

efekt tohoto příkazu ukazuje následující výstup:

napětí zdroje  U1 = 600,000  [V]

Příkaz CLS	Příkaz cls vymaže obsah textového editoru výstupního okna EdForm.

Poznámka:	Pro snazší pochopení používání formátovací masky si prostudujte prosím příklady uvedené v knihovně výrazů pod heslem kategorie  BASIC \Příklady úloh.


Instrukce  PLOT

Příklad

Účel	Výstup do grafu datové řady ve formuláři GrForm

Syntaxe	plot IndexŘady, SouřadniceX, SouřadniceY

Popis	Příkaz plot umožňuje postupné vykreslování grafu datové řady v okně grafiky GrForm.

Parametry	IndexŘady je pořadové číslo datové řady. Indexy datových řad jsou číslovány od jedničky vzestupně. Pokud má index hodnotu o jednotku vyšší než je aktuální počet zobrazených datových řad, vytvoří se graf další datové řady. Pokud je index ještě větším číslem, instrukce je ignorována.

SouřadniceX, SouřadniceY jsou souřadnicemi x,y bodů grafu datové řady. Bod se souřadnicemi x,y bude připojen na konec datové řady se specifikovaným indexem a vykreslí se spojnicový graf řady.

Poznámka:	Postupné vykreslování grafu datových řad tímto způsobem je poměrně pomalé, může ale být názorné a podstatně vhodnější např. pro potřebu výuky.


Instrukce  MSG

Příklad

Účel	Formátovaná zpráva pomocí dialogového okna

Syntaxe	msg "Zpráva", [TypDialogu], [VýčetTlačítek], VýčetProměnných

Popis	Příkaz msg je funkcí umožňující zobrazení dialogového okna s formátovanou zprávou. Zpráva může obsahovat formátovací znaky pro formátovaný výpis obsahu proměnných.

Parametry	Zpráva obsahuje text, který bude zobrazen spolu s formátovaným výpisem hodnot proměnných, pokud jsou tyto specifikovány. Jako součást zprávy lze uvést formátovací masku, kde lze specifikovat formát a přesnost zobrazení číselných hodnot. Podrobnou specifikaci formátovací masky naleznete pod heslem formátovací masky.

Parametr Typ dialogu může být jednou z následujících možností:

•	Warning	(Warn)	...varování

•	Error	(Err)	...chyba

•	Information	(Info)	...informace

•	Confirmation	(Conf)	...potvrzení

Ve specifikaci typu dialogu postačuje uvést počáteční písmena, jak je uvedeno v závorkách. Není-li typ dialogu specifikován, zobrazí se zpráva typu informace.

Parametr Výčet tlačítek obsahuje seznam tlačítek, která se mají zobrazit. Výčet může obsahovat následující hodnoty

•	Yes	...Ano

•	No	...Ne

•	OK	...OK

•	Cancel	...Storno

•	Abort	...Přerušit

•	Retry	...Znovu

•	Ignore	...Ignoruj

Specifikace výčtu tlačítek je nepovinná, většinou bude stačit, když se spokojíte s implicitními tlačítky, která jsou v případě dialogu typu

•	Varování	...Storno

•	Chyba	...Storno

•	Informace	...OK

•	Potvrzení	...Ano + Ne + Storno

Parametr Výčet proměnných je nepovinný seznam identifikátorů proměnných oddělený čárkami.

Návratová hodnota dialogu MSG

Příkaz msg je funkcí s návratovou hodnotou. Většinou nebude návratová hodnota funkce vůbec zjišťována. Její testování však nabývá na významu u dialogu typu Confirmation, kde má uživatel možnost pomocí dialogu určit, kterou větví se má řízení programu dále ubírat.

Návratové hodnoty funkce msg jsou dány tlačítkem, které bylo v dialogu stisknuto a mají následující číselné hodnoty:

1	...bylo stisknuto tlačítko OK

2	...bylo stisknuto tlačítko Storno nebo klávesa Esc nebo systémové tlačítko Zavřít

3	...bylo stisknuto tlačítko Přerušit

4	...bylo stisknuto tlačítko Znovu

5	...bylo stisknuto tlačítko Ignoruj

6	...bylo stisknuto tlačítko Ano

7	...bylo stisknuto tlačítko Ne

Příklad	if msg ("Chcete pokračovat ve výpočtu?", Conf) = 7 then end


Instrukce  RESET, CLEAR

Příklad

Účel	Odstranění uživatelských proměnných, vynulování proměnných

Syntaxe	reset

clear

Popis	Příkaz reset simuluje stisk tlačítka [image] hlavního okna aplikace. Všechny uživatelské proměnné budou odstraněny, a to bez dotazu. Do vstupních polí proměnných jsou dosazeny implicitní proměnné X, Y, A, B, C, D, E, F a inicializovány hodnotou nula.

Příkaz clear provádí pouze vynulování proměnných, opět bez dotazu.

Poznámka:	Příkaz reset se všeobecně doporučuje jako součást inicializační sekce programu spolu s příkazem mode, aby se předešlo eventuálním nesrovnalostem použitých proměnných případně aby byly výpočty reprodukovatelné s naprosto shodnými výsledky.


Instrukce  MODE

Příklad

Účel	Inicializace režimu výpočtu

Syntaxe	mode výčet parametrů

Popis	Příkaz mode inicializuje režim výpočtu tím, že nastavuje požadované hodnoty stavových parametrů. Výčet parametrů je oddělen čárkou nebo mezerou. Parametry mohou nabývat hodnot dle následujícího popisu:

Parametry	deg | rad | grad	...nastaví úhlové jednotky

dec | hex | bin | oct	...nastaví číselnou soustavu

real | cplx	...nastaví číselný obor

imag=i	...nastaví jako imaginární jednotku symbol i

imag=j	...nastaví jako imaginární jednotku symbol j

data	...zaškrtne nabídku Enter vkládá data

Poznámka:	Příkaz mode se doporučuje používat jako součást inicializační sekce programu spolu s příkazem reset, aby se zajistila reprodukovatelnost výpočtů se shodnými výsledky a předešlo eventuálním nesrovnalostem použitých proměnných.


Instrukce  PAUSE

Příklad

Účel	Vloží nepodmíněný/podmíněný bod přerušení do programu

Syntaxe	pause

if podmínka then pause

Popis	Příkaz pause umožňuje vložení bodu přerušení běhu programu pro účely ladění programu.

Příkaz pause lze kombinovat s podmíněným příkazem if...then, pak se jedná o podmíněný bod přerušení. Běh programu se zastaví na tomto místě, když je splněna specifikovaná podmínka.

Požití příkazu pause je velmi užitečné v ladícím režimu. Pozastavení programu je indikováno zamáčknutím tlačítka [image] (Pozastavit/Pokračovat) na panelu nástrojů Knihovny výrazů a zvýrazněním řádku s instrukcí pause.

Poznámka:	Pokračování pozastaveného programu příkazem pause je nutno provést ručně myší vymáčknutím tlačítka Pozastavit/Pokračovat nebo stisknutím klávesy F8.


Instrukce  BEGIN, END

Příklad

Účel	Vymezení těla hlavního programu

Syntaxe	begin

tělo hlavního programu

end

Popis	Příkaz begin uvozuje tělo hlavního programu, zatímco příkaz end ukončuje tělo hlavního programu.

Neobsahuje-li deklarační sekce programu definice uživatelských funkcí (příkazy def...enddef), lze klíčové slovo begin vynechat.

Nejsou-li v programu použity podprogramy (definované příkazy sub..return), lze klíčové slovo end vynechat.

Poznámka:	Ačkoliv lze v jednodušších programech ve shodě se shora uvedenými pravidly klíčová slova begin a end vynechat, doporučuje se z důvodu přehlednosti a jednotného stylu při psaní programu úlohy používat obě klíčová slova.


Pravidla pro psaní instrukcí

Syntaktická pravidla

Syntaktická pravidla neboli syntaxe určují způsob zápisu textu úlohy (zdrojového kódu programu úlohy). Pro psaní instrukcí jazyka BASIC je syntaxe uvedena u každé instrukce včetně možných alternativ.

Pro psaní matematických výrazů platí pravidla uvedená v kapitole Syntaxe výrazů.

Oddělování příkazů

Jelikož příkazový interpret je řádkově orientovaný, platí zásada, že instrukce musí být napsána na jednom řádku, pokud neumožňuje použití bloku příkazů.

Psaní blokových instrukcí

Některé instrukce umožňují zápis příkazů v blocích na více řádcích. Blok instrukcí musí být ukončen klíčovým slovem podle typu instrukce (endif, next, until, loop, enddef, return).

Program EMcalc podporuje následující blokové instrukce:

•	podmínky,

•	iterační cykly,

•	uživatelské funkce,

•	podprogramy.

Malé a velké znaky

Klíčová slova instrukcí BASIC mohou být zapsána malými nebo velkými písmeny. Tak například zápis ENDDEF, enddef, a EndDef jsou různé zápisy téhož klíčového slova. Toto pravidlo platí pro

•	klíčová slova,

•	identifikátory proměnných,

•	identifikátory návěští skoku,

•	identifikátory názvů podprogramů a uživatelských funkcí

Klíčová slova mají v interpretovaných úlohách specifický význam. Identifikátorem nesmí být klíčové slovo.

Psaní komentářů

Text programu lze opatřit komentáři. Komentář je text, který je uvozen apostrofem a má platnost od výskytu apostrofu do konce řádku. Texty, jež některé instrukce vyžadují psané v uvozovkách, nesmí obsahovat apostrof.

Čitelné programy

Styl psaní textu úloh je individuální záležitostí. Existují však obecná pravidla, která platí pro psaní počítačových programů a která lze i v našem případě doporučit. Zvyšuje se tak přehlednost a čitelnost úloh, což napomáhá k minimalizaci počtu chyb.

K těmto pravidlům patří:

•	používání smysluplných názvů proměnných,

•	členění úloh na podprogramy a uživatelské funkce,

•	odsazení vnořené úrovně o dva znaky vůči nadřezené úrovni,

•	používání komentářů.

Poznámka:	Jako vodítko pro psaní čitelných programů slouží příklady uvedené v knihovně výrazů pod heslem kategorie BASIC\ příklady úloh.


Formátovací řetězce

Formátovací řetězce používané v instrukcích print a msg obsahují dva typy objektů - znakové literály a formátovací specifikátory. Znakové literály jsou doslovně kopírovány do výsledného řetězce. Formátovací specifikátory formátují argumenty ve sledu specifikovaném v seznam argumentů.

Syntaxe formátovacích specifikátorů

"%" [index ":"] ["-"] [width] ["." prec] type

Formátovací specifikátor je uvozen znakem %, po němž následují parametry v tomto pořadí::

volitelný indexový specifikátor, [index ":"]

volitelný indikátor pro zarovnání vlevo, ["-"]

volitelný specifikátor šířky, [width]

volitelný specifikátor přesnosti, ["." prec]

znak specifikující typ konverze, type

Následující přehled uvádí přípustné hodnoty parametru type

e	Exponenciální formát

Hodnota je konvertována na řetězec formátu "-d.ddd...E+ddd". Pokud je hodnota záporná, začíná výsledný řetězec znaménkem mínus. Desetinné čárce vždy předchází jedna číslice. Celkový počet číslic ve výsledném řetězci (včetně číslice před desetinnou čárkou) je dán parametrem width ve formátovacím řetězci, specifikujícím přesnost. Implicitní přesnost je 15 platných míst, pokud není uveden parametr width.

Za znakem exponentu E ve výsledném řetězci vždy následuje znaménko plus nebo mínus a nejméně tři číslice.

f	Formát s pevnou řádovou čárkou

Číselná hodnota je konvertována na řetězec formátu "-ddd.ddd...". Pokud je hodnota záporná, začíná výsledný řetězec znaménkem mínus. Počet desetinných míst je dán specifikátorem width ve formátovacím řetězci. Implicitní hodnota je dána počtem desetinných míst nastavených v systému Windows (obvykle 2). Tato hodnota se použije, pokud není specifikátor width uveden.

g	Formát s plovoucí řádovou čárkou

Číselná hodnota je konvertována na co možná nekratší řetězec reprezentující desetinné číslo, přičemž se použije formát s pevnou řádovou čárkou nebo exponenciální notace. Počet významných číslic ve výsledném řetězci je dán specifikátorem width, specifikujícím přesnost. Implicitní přesnost je 15 platných míst, pokud není specifikátor width uveden. Nevýznamné nuly jsou z desetinné části odstraněny a desetinná čárka se vyskytne jen v případě nezbytnosti.

Ve výsledném řetězci se použije formát s pevnou řádovou čárkou, pokud je počet číslic před desetinnou čárkou menší nebo roven specifikované přesnosti a pokud je číselná hodnota větší nebo rovna hodnotě 0.00001. V ostatních případech se použije notace exponenciální.

n	Formát s oddělovačem trojčíslí

Číselná hodnota je konvertována na řetězec s formátem "-d,ddd,ddd.ddd...". Formát "n" koresponduje formátu "f", výsledný řetězec obsahuje navíc oddělovač trojčíslí.

m	Finanční formát

Číselná hodnota je konvertována na řetězec reprezentující finanční částku (obnos). Konverze se řídí globálními systémovými proměnnými CurrencyString, CurrencyFormat, NegCurrFormat, ThousandSeparator, DecimalSeparator, a CurrencyDecimals, které se nastavují v ovládacích panelech systému Windows. Obsahuje-li formátovací řetězec specifikátor width, specifikující přesnost, použije místo hodnoty globální proměnné CurrencyDecimals.

Specifikátor type určující způsob konverze může být zapsán velkým nebo malým písmenem. Jako oddělovač desetinných míst a oddělovače trojčíslí se použije znaků specifikovaných v globálních  proměnných DecimalSeparator a ThousandSeparator systému Windows.

Parametr width specifikuje minimální šířku pole pro konverzi. Je-li výsledný řetězec kratší, než je minimální šířka pole, vyplní se mezerami tak, aby bylo dosaženo minimální šířky pole.

Výsledný řetězec se je implicitně zarovnaný zprava přidáním mezer zleva. Avšak pokud formátovací řetězec obsahuje indikátor "-" (před parametrem width), zarovná se výsledný řetězec zleva doplněním mezer zprava.

Specifikátor index nastavuje aktuální index seznamu argumentů pro dosazení hodnoty argumentu. Index prvního prvku seznamu argumentů je 0. Používání indexu umožňuje násobné použití téhož argumentu. Například formátovací řetězec "%d %d %0:d %1:d', [10, 20])" poskytne výsledný zformátovaný řetězec "10 20 10 20'".

Poznámka:	Příklady použití formátovacích řetězců naleznete v knihovně výrazů pod kategoriemi BASIC\ příklady úloh.


Nativní funkce

Důsledkem řízení interpretovaných úloh ve dvou vrstvách (interpret BASIC jakožto nadstavba lexikálního analyzátoru výrazů) je fakt, že existuje dvojí zásadně odlišný přístup k řešení úloh, provádějících generování datových řad.

Přirozeně disponuje implementovaný jazyk BASIC instrukcí for...next umožňující řízení iteračního cyklu. Vlivem vysoké režie, kterou jsou interpretované úlohy zatíženy, je výpočet v cyklu for...next pomalý.

Program EMcalc má naštěstí nativní (přirozenou, jemu vlastní) schopnost provádět tyto výpočty rychlostí cca o tři řády vyšší, neboť kód není interpretován ale má charakter kódu kompilovaného (jako mají moderní překladače programovacích jazyků).Tohoto faktu lze s výhodou využít při definování uživatelských funkcí.

Následující výpis kódu, který je v knihovně výrazů uveden pod heslem kategorie BASIC\ uživatelské funkce\ FInt, uvádí definici a použití numerické integrace uživatelské funkce, jejíž definici lze zadat až v době volání funkce vykonávající integraci.

reset

mode dec,real

def integral(fx,a,b)

  dx=(b-a)/10000

  @1=x

  #1=a..b:dx

  @2=integral

  #2=0:ans

  fx*dx	'..toto je nativní funkce

enddef

begin

  call integral("sin(x)";0;pi)

  msg "Integrál = %g",info; integral

end

Tento na první pohled nesrozumitelný kód si nyní objasníme.

První dva řádky obsahují obvyklé klausule inicializační sekce, která vyčistí seznam proměnných a obstará nastavení režimu výpočtu.

Následuje definice uživatelské funkce integral se třemi formálními parametry uzavřenými v závorkách. Prostřednictvím parametru fx bude při volání funkce předáno skutečné znění uživatelské funkce, která má být integrována v mezích od a do b. Meze pro integraci se rovněž předávají jako parametry.

Mezi klíčovými slovy begin a end je pak uvedeno tělo hlavního programu, které zajistí provedení výpočtu voláním (call) funkce pro výpočet integrálu matematické funkce sin(x) v mezích od 0 do pi. Instrukce msg pak pouze zobrazí v dialogovém oknu vypočtenou hodnotu.

Nyní rozeberme tělo definice uživatelské funkce integral.

dx=(b-a)/10000

 Tato formule je zároveň instrukcí, která registruje proměnnou dx (iterační krok) a provádí její inicializaci. Přitom se předpokládá, že v proměnné a bude obsažena dolní mez (počáteční hodnota) iterační proměnné dx, a v proměnné b pak horní mez (konečná hodnota). Touto definicí jsme stanovili, že počet iterací bude 10000+1.

@1=x

Tato instrukce registruje proměnnou x a umisťuje ji do levého horního pole pro proměnné v hlavním oknu aplikace.

#1=a..b:dx

Tato instrukce definuje iterační cyklus řízený proměnnou x, kde proměnná a je dolní mez, proměnná b je horní mez a proměnná dx iterační krok.

@2=integral

Tato instrukce registruje proměnnou integral jakožto návratovou hodnotu funkce a umisťuje ji do druhého pole proměnných.

#2=0:ans

Tato instrukce inicializuje návratovou hodnotu funkce, která bude současně použita jako sumátor mezivýsledků (sčítá plochy dané fx*dx).

Nyní by názvy proměnných a obsahy vstupních polí měly vypadat následovně:

fx*dx

Tato analytická funkce je definiční funkcí pro výpočet integrálu (platí přesně za předpokladu, že dx se blíží k nule). Tento řádek obsahuje jediný výkonný příkaz, který předá řízení výpočtu nativní formou. Provede se výpočet datové řady, přičemž dílčí výsledky obsažené v proměnné ans jsou průběžně přičítány k hodnotě proměnné integral.

Po skončeném výpočtu se v dialogovém oknu zobrazí vypočtená hodnota integral=1,99999998355066


Skladba úlohy

Sekvenční úlohy

Jednoduché interpretované úlohy mohou být prostými sekvencemi matematických výrazů bez nutnosti řídícího mechanismu (sekvenční úlohy). Příkazový interpret v takovém případě řeší úlohu metodou shora dolů řádek po řádku.

Strukturované úlohy

Ve strukturovaných úlohách využívajících vestavěných instrukcí interpretu BASIC je vykonávání příkazů řízeno v závislosti na různých podmínkách. Při psaní textu úloh je třeba dodržovat určitý rámec skladby jednotlivých sekcí úloh.

Program strukturované úlohy se skládá z následujících sekcí:

1.	deklarační a inicializační sekce,

2.	tělo programu,

3.	sekce podprogramů.

Deklarační a inicializační sekce

Deklarační sekce slouží k inicializaci režimu výpočtu a k registraci a inicializaci proměnných.  Inicializací proměnné se rozumí přiřazení počáteční hodnoty. Pokud není inicializace proměnných provedena explicitně, jsou zaregistrované proměnné inicializovány hodnotou nula.

Proměnná, která má být umístěna do některého vstupního pole pro proměnné v hlavním oknu aplikace EMcalc, musí být deklarována a inicializována pomocí symbolického zápisu:

@X = NázevProměnné	kde X  ∈ {1, 2, 3, 4, 5, 6, 7, 8}

#X  =  hodnota

Symboly uvedené v syntaxi zápisu mají následující význam:

@	je klíčovým znakem pro deklaraci názvu proměnné,

#	je klíčovým znakem pro inicializaci proměnné,

X	adresuje pořadové číslo vstupního pole.

Upozornění:	Je třeba mít na zřeteli, že původní proměnná, která se poli X nacházela, je při tomto způsobu deklarace nahrazena novou proměnnou a je z paměti zcela odstraněna.

Použití deklarační sekce je nepovinné, jelikož registrace proměnných probíhá v režimu interpretovaných úloh vždy automaticky. Přesto se použití deklarace proměnných uvedeným způsobem doporučuje, protože umožňuje integraci výpočtů datových řad pomocí nativních funkcí mnohonásobně vyšší rychlostí.

Poznámka:	Nativní způsob výpočtu datových řad nepoužívá instrukcí jazyka BASIC pro iterační výpočty a je asi o tři řády rychlejší.

Příkaz mode - nastavení režimu výpočtů

Pro bezchybnou reprodukovatelnost výpočtů musí program úlohy při jejím spuštění zabezpečit nastavení správného režimu výpočtu. Režim výpočtu se inicializuje pomocí příkazu mode, kde výčet parametrů oddělených čárkou nebo mezerou představuje nastavení režimů v hlavním aplikačním oknu. Příkaz mode se obvykle uvádí na samém začátku inicializační sekce.

V principu je možné za běhu úlohy měnit režim výpočtu, pokud to ovšem nepostrádá svůj smysl.

  Definice uživatelských funkcí

V rámci deklarační sekce se dále uvádí všechny deklarace uživatelských funkcí tvořených instrukcemi def-enddef. Pokud jsou v programu úlohy použity uživatelské funkce, musí být tělo hlavního programu úlohy uvozeno klíčovým slovem begin.

Tělo programu

Blok instrukcí tvořící tělo hlavního programu je obvykle ohraničen klíčovými slovy begin a end. Pokud nejsou použity uživatelské funkce, lze klíčové slovo begin vypustit. Pokud program úlohy neobsahuje ani podprogramy, lze vypustit návěští konce těla programu end. Z důvodu přehlednosti textu úlohy se ale používání klíčových slov begin a end doporučuje.

Sekce podprogramů

Sekce podprogramů, se umisťuje až za klíčové slovo end ukončující tělo hlavního programu úlohy. Podprogramy se vytváří pomocí konstrukce sub-return a obsahují fragmenty úlohy, které lze opakovaně volat z libovolného místa v programu.

Poznámka:	Program strukturované matematické úlohy nemusí vždy obsahovat všechny uvedené sekce. Kromě těla programu lze ostatní sekce zcela vypustit. Přesto by použití deklarační a inicializační sekce mělo být pravidlem.


Spuštění a ladění úlohy

Co je ladění úlohy

Laděním úlohy rozumíme proces odstraňování syntaktických a sémantických chyb v programu úlohy tak, aby řešení poskytovalo bezchybné výsledky. Příkazový interpret je řádkově orientovaný (vykonává instrukce po jednotlivých řádcích textu úlohy). V této souvislosti se hovoří o trasování.

Trasování je zkoumání, zda trasa, kudy interpret prochází při vykonávání instrukcí odpovídá předpokládanému sledu.Trasa je dána jednak instrukcemi použitými v úloze, jednak obsahem proměnných, které ovlivňují vyhodnocení relačních podmínek a které rozhodují o směru toku při větvení programu.

EMcalc má v sobě integrovány prostředky, které usnadňují v procesu ladění jak potřebu trasování, tak i sledování obsahu proměnných.

Trasování

Pro trasování programu úlohy poskytuje Emcalc prostředky, které jsou přístupné jednak z panelu nástrojů, jednak ve formě klávesových zkratek.

spuštění úlohy se zastavením na řádku s kurzorem,

spuštění úlohy od začátku,

pozastavení/pokračování pozastavené úlohy,

ukončení běhu úlohy.

Klávesové zkratky

F1	nápověda ke knihovně výrazů

F2	inicializace ladícího režimu / ukončení běhu úlohy (jako tlačítko Stop)

F4	běh úlohy do místa kurzoru (jako tlačítko Ke kurzoru)

F5	maximalizace/obnovení velikosti okna editoru (jako tlačítko Zvětšit/zmenšit)

F6	maximalizace/obnovení velikosti okna editoru (jako tlačítko Editovat)

F7	krokování úlohy po jednotlivých řádcích

F8	pozastavení/pokračování běhu úlohy (jako tlačítko Pauza)

F9	běh od začátku úlohy (jako tlačítko Start)

Krokování

Krokování trasy spolu se sledováním některých proměnných je základním kamenem ladění úloh. Při krokování se postupně přesouvá zvýraznění řádku na místo, které bude vykonáno po stisknutí klávesy F7.

Při krokování je úloha pozastavena, což je indikováno zamáčknutým stavem tlačítka Pozastavit/Pokračovat.

Pokud některá instrukce způsobí deaktivaci okna knihovny výrazů (jako je tomu např. u příkazů open, print, plot, input, msg, je nutno okno s knihovnou výrazů aktivovat ručně (např. klepnutím na titulek okna) a pokračovat dále v krokování klávesou F7.

Klepnutí do okna s textem úlohy způsobí znevýraznění řádku. Přitom se může kurzor přemístit na jiný řádek. To ovšem na správný sled trasy nemá vliv, krokování pokračuje tam, kde bylo pozastaveno.

Běh úlohy do místa s kurzorem

Často je třeba projít odladěnou částí úlohy bez zastavení. K tomu stačí umístit kurzor do místa, kde má být úloha pozastavena a stisknout klávesu F4. Dále lze pokračovat v krokování jednotlivými řádky klávesou F7 nebo lze běh úlohy dokončit klávesou F8 anebo klávesou F2 přerušit.

Kladení bodů přerušení

Aby bylo možné běh úlohy pozastavit nejen na požadovaném místě ale také za splnění určitých podmínek, umožňuje instrukce pause v kombinaci s podmínkou if...then

if podmínka then pause

kladení podmíněných bodů přerušení pro podmíněné pozastavení běhu programu.

Výpis proměnných

Výpis obsahu proměnných tvoří spolu s trasováním nejvýznamnější metody ladění programu. EMcalc obsahuje okno Seznam proměnných, kde lze hodnoty proměnných průběžně sledovat a při pozastavené úloze i měnit.

Spuštění úlohy z hlavního okna aplikace

Spuštění úlohy lze provést také přímo z hlavního okna, aniž by bylo nutno napřed otevřít knihovnu výrazů a vyhledat odpovídající heslo kategorie. Stačí do vstupního řádku Výraz zapsat příkaz

run Makro  popřípadě  run(Makro)

kde místo slova Makro napíšeme název hesla kategorie a potvrdíme klávesou Enter. Nejdříve se otevře knihovna výrazů. Pokud úloha se zadaným názvem existuje, je příslušné heslo kategorie nastaveno jako aktivní a úloha se hned spustí. Pokud zadaný název úlohy neexistuje, vyhledá se úloha s částečnou shodou názvu kategorie metodou inkrementálního vyhledání, úloha se v tomto případě nespustí.


Příklady použití instrukcí


IF...THEN...ELSE,  Podmíněný příkaz

Jednoduchá podmínka

Podmínka s příkazovým blokem

Podmínky s vnořenými příkazovými bloky


IF...THEN...ELSE, Jednoduchý příkaz

reset                      'provede Reset

mode rad,dec,real          'inicializuje režim výpočtů

a=0

:Opakuj                    'návěští

  a=a+1

  if a<3 then goto opakuj  'podmíněný skok na návěští

end


IF...THEN...ELSE, Příkazový blok

reset                      'provede Reset

mode rad,dec,real          'inicializuje režim výpočtů

open LogForm,0,0,100,200   'zobrazení okna LogForm

for i=1 to 50

  if i<=25 then

    open LogForm,+2,+2     'příkaz bloku then

    print "i=%3f  ",i      'příkaz bloku then

  else

    open LogForm,-2,-2     'příkaz bloku else

  endif

next

close LogForm              'skrytí okna LogForm


IF...THEN...ELSE, Vnořený příkazový blok

reset              'provede Reset

mode rad,dec,real  'inicializuje režim výpočtů

a=1

b=0

if a>0 then        'podmíněný blok příkazů

 b=b+1

  if b>10 then     'vnořený podmíněný blok příkazů

    d=2

  else

    e=3

  endif            'konec vnitřního bloku příkazů

  c=3

else

  d=4

  e=5

endif              'konec vnějšího bloku příkazů

end                'konec úlohy


FOR...NEXT,  Cyklus s pevným počtem iterací

Implicitní krok = 1

Kladná hodnota kroku <> 1

Záporná hodnota kroku


FOR...NEXT, Cyklus s implicitním krokem = 1

reset                     'provede Reset

mode rad,dec,real         'inicializuje režim výpočtů

open EdForm,0,0,150,300   'připraví velikost a polohu EdForm

cls                       'vymaže obsah okna EdForm

x=0

for a=1 to 3              'hlavička cyklu for...next

  for b=1 to 4            'hlavička vnořeného cyklu for...next

    c=a*b

    if c>6 then continue  'přeskočení zbylých instrukcí cyklu

    X=X+1

    print a,b,x           'vypíše proměnné a,b,x do EdForm

    if X=5 then

      x=0

      break               'přeruší vnitřní cyklus for...next

    endif                 'ukončuje podmíněný blok příkazů

  next                    'konec vnitřní smyčky cyklu for..next

next                      'konec vnější smyčky cyklu for..next

msg "hotovo"              'zobrazí zprávu o ukončení úlohy

end


FOR...NEXT, Cyklus s kladnou hodnotou kroku <> 1

reset                  'provede Reset

mode rad,dec,real      'inicializuje režim výpočtů

suma=0

for i=2 to 100 step 2  'iterační krok je roven 2

  suma=suma+i

next

msg "součet sudých čísel = %g", info; suma


FOR...NEXT, Cyklus se zápornou hodnotou kroku

reset                  'provede Reset

mode rad,dec,real      'inicializuje režim výpočtů

qsum=0

for i=5 to 0 step -0,1 'iterační krok je roven -0,1

  qsum=qsum+i^2

next

msg "součet kvadrátů = %7.2f", info; qsum


WHILE...LOOP, Cyklus s podmínkou na začátku bloku

reset                'provede Reset

mode rad,dec,real    'inicializuje režim výpočtů

cls                  'vymaže obsah výstupního okna EdForm

a=0

while a<5            'podmínka na začátku cyklu while...loop

  a=a+1

  print a            'výpis hodnoty proměnné do okna EdForm

  if a=3 then break  'podmíněné přerušení cyklu while...loop

loop                 'konec těla cyklu while...loop

msg "hotovo"         'zobrazí zprávu o ukončení úlohy

end                  'konec programu


REPEAT...UNTIL, Cyklus s podmínkou na konci bloku

reset               'provede Reset

mode rad,dec,real   'inicializuje režim výpočtů

a=0

repeat              'hlavička cyklu repeat...until

  a=a+1

  print a           'výpis proměnné do okna EdForm

  if a=3 then break else continue

  b=2               'tento příkaz se nikdy nevykoná

until a=5           'podmínka na konci cyklu repeat...until

msg "hotovo"        'zobrazí zprávu o ukončení úlohy

end                 'konec programu


BREAK,  Přerušení iteračního cyklu

reset                   'provede Reset

mode rad,dec,real       'inicializuje režim výpočtů

open EdForm 0,0,120,240 'připraví velikost a polohu EdForm

cls                     'vymaže obsah okna EdForm

a=0

repeat                  'hlavička cyklu repeat...until

  a=a+1

  print a               'výpis proměnné a do okna EdForm

  if a=5 then break

  b=2*a

until a>10              'podmínka na konci cyklu repeat...until

msg "a = %g"; a         'zobrazí konečnou hodnotu proměnné a

end                     'konec programu


CONTINUE, Pokračování cyklu další iterací

reset                   'provede Reset

mode rad,dec,real       'inicializuje režim výpočtů

open EdForm 0,0,120,240 'připraví velikost a polohu EdForm

cls                     'vymaže obsah okna EdForm

a=0

repeat                  'hlavička cyklu repeat...until

  a=a+1

  print a               'výpis proměnné a do okna EdForm

  if a>5 then continue

  b=a

until a>10              'podmínka na konci cyklu repeat...until

msg "b = %g"; b         'zobrazí konečnou hodnotu proměnné a

end                     'konec programu


GOTO, LABEL, Skok na specifikované návěští

reset                    'provede Reset

mode rad,dec,real        'inicializuje režim výpočtů

a=0

:Opakuj                  'návěští

a=a+1

if a<5 then goto Opakuj  'podmíněný skok na návěští

msg "hotovo"             'zobrazí zprávu o ukončení úlohy

end                      'konec programu


SUB...RETURN, GOSUB, Podprogram

reset                'provede Reset

mode rad,dec,real    'inicializuje režim výpočtů

a=3

gosub Podprogram     'volání podprogramu

msg "a = %g",info;a  výpis proměnné a

end                  'konec programu

sub Podprogram       'hlavička podprogramu

  for n=1 to 5

    a=a+1

  next

return               'návrat z podprogramu


DEF...ENDDEF, CALL, Uživatelská funkce

reset                      'provede Reset

mode rad,dec,real,norm     'inicializuje režim výpočtů

def mean(a,b,c)            'hlavička uživatelské funkce

  mean=(a+b+c)/3           'přiřazení funkční hodnoty

  'result=(a+b+c)/3        'přiřazení funkční hodnoty jinak

enddef                     'konec bloku definice funkce

begin                      'začátek těla hlavního programu

  call mean(4;5;7)

  msg "mean = %1.3g"; mean 'volání uživatelské funkce

end                        'konec těla hlavního programu


EXIT,  Opuštění podprogramu nebo uživatelské funkce

reset                 'provede Reset

mode rad,dec,real     'inicializuje režim výpočtů

open EdForm,0,0       'zobrazí EdForm vlevo nahoře

cls                   'vymaže obsah okna EdForm

begin                 'začátek těla hlavního programu

  a=0

  gosub Podprogram    'volání podprogramu

  msg "a = %g",info;a 'výpis proměnné a

end                   'konec těla hlavního programu

sub Podprogram       'hlavička podprogramu

  for n=1 to 5

    a=a+1

    print a

    if a=3 then exit 'předčasné opuštění podprogramu

  next

return               'regulérní návrat z podprogramu


OPEN, CLOSE, Řízení stavu nemodálního okena nebo souboru

Zobrazení okna

Animace okna

Zápis do souboru

Čtení ze souboru


OPEN, CLOSE,  Zobrazení okna

open ExprForm, minimize  'minimalizuje Knihovnu výrazů

open MainForm, hide      'skryje aplikační okno EMcalc

open SplashForm          'zobrazí logo programu EMcalc

delay 1500               'časová prodleva 1,5 sec

close SplashForm         'uzavře okno s logem EMcalc

open ExprForm, maximize  'maximalizuje Knihovnu výrazů

msg "Obnovit stav okna"  'zobrazí informační dialog

open ExprForm, restore   'obnoví stav Knihovny výrazů

open MainForm, show      'zobrazí aplikační okno EMcalc


OPEN, CLOSE,  Animace okna

reset                         'provede Reset

mode deg,dec,real             'inicializuje režim výpočtů

open VarForm,,,100,100        'nastaví šířku a výšku VarForm

open VarForm,topmost          'okno VarForm nejsvrchnějším

for fi=0 to 360 step 2

  left=300+100*(1+cos(fi-90)) 'vypočítá parametr left

  top=150+100*(1+sin(fi-90))  'vypočítá parametr top

  open VarForm,left,top       'animace okna VarForm

next

open ExprForm,restore        ' obnoví stav ExprForm

close VarForm                 'zavře okno VarForm


OPEN, CLOSE,  Zápis do souboru

reset                             'provede Reset

mode rad,dec,real                 'inicializuje režim výpočtů

cls

open "sinus.txt" for output as #1 'otevře soubor pro zápis

for x=0 to 2*pi step pi/10

  print #1 "%1.3f", sin(x)        'zápis do souboru

next

close #1                          'uzavře soubor


OPEN, CLOSE,  Čtení ze souboru

reset                             'provede Reset

mode rad,dec,real                 'inicializuje režim výpočtů

cls

open "sinus.txt" for input as #1  'otevře soubor pro čtení

while not eof #1

  input #1, x                     'čtení ze souboru

  print x                         'zapíše přečtenou hodnotu do EdForm

loop

close #1                          'uzavře soubor


DELAY,  Časová prodleva

open(ExprForm,minimize)  'zobrazí knihovnu výrazů minimalizovaně

open(MainForm,hide)      'skryje hlavní okno

open(SplashForm)         'zobrazí okno s logem EMcalc

delay(1000)              'časová prodleva 1 sec

close(SplashForm)        'zavře okno s logem EMcalc

open(MainForm,show)      'zobrazí hlavní okno

open(ExprForm,restore)   'obnoví zobrazení knihovny výrazů


KEYBD,  Simulace stisku klávesy a klávesové zkratky

keybd F1   'vyvolá nápovědu programu EMcalc


INPUT,  Vstup z dialogu nebo textového souboru

Vstup z dialogu

Vstup z textového souboru


INPUT,  Vstup z dialogu

reset                             'provede Reset

mode rad,dec,real,norm            'inicializuje režim výpočtů

input "Zadejte číslo", X, 12.35   'zadání hodnoty X pomocí dialogu

msg "Hodnota X = %1.5g", info; X  'zobrazí zadanou hodnotu


INPUT,  Vstup z textového souboru

reset                             'provede Reset

mode rad,dec,real                 'inicializuje režim výpočtů

cls

open "sinus.txt" for input as #1  'otevře soubor pro čtení

while not eof #1

  input #1, x                     'čtení ze souboru

  print x                         'zapíše přečtenou hodnotu do EdForm

loop

close #1                          'uzavře soubor


PRINT,  Výstup do dialogu nebo textového souboru

Výstup do okna

Výstup do textového souboru


PRINT,  Výstup do okna

reset                          'provede Reset

mode rad,dec,real              'inicializuje režim výpočtů

cls                            'vymaže výstupní okno

for x=-20 to 20 step 2         'formátovaný výstup do okna

  print "x = %1.3f  	cosh(x) = %1.3f", x, cosh(x)

next


PRINT,  Výstup do textového souboru

reset                             'provede Reset

mode rad,dec,real                 'inicializuje režim výpočtů

cls                               'vymaže výstupní okno

open "sinus.txt" for output as #1 'otevře soubor pro zápis

for x=-20 to 20 step 2

  print #1 "%1.3f", cosh(x)       'zápis do souboru

next

close #1                          'uzavře soubor


PLOT,  Výstup do grafiky

reset                      'provede Reset

mode rad,dec,real,norm     'inicializuje režim výpočtů

for x=0 to 4*pi step pi/50

  if x= 0 then open GrForm,0,0,400,300

  y=cos(x)

  plot(1,x,y)              'výstup do grafiky

  z=x*sin(x)

  plot(2,x,z)              'výstup do grafiky

next


DATA,  Vkládání dat do statistické analýzy

msg "Vygenerování série 50-ti náhodných čísel v rozsahu 0..1000, provedení statistické analýzy nad vygenerovanými daty",Příklad

mode rad,dec,real

reset

open MainForm,TopRight              'umístění hlavního okna

open ExprForm,BottomRight           'umístění okna knihovny výrazů

open StatForm,TopLeft               'umístění okna statistiky

for x=1 to 50

  Data Random(1000)                 'vložení vstupních dat do formuláře statistické analýzy

next

keybd StatForm,Alt+A                'provedení výpočtu statistické analýzy

if msg "Chcete uložit vstupní data?",conf = 6 then

  keybd StatForm,Ctrl+S    'uložení vstupní datové řady

endif

if msg ("Chcete uložit statistiku?",conf)=6 then

  keybd StatForm,Shift+Ctrl+S           'uložení statistických dat do souboru

endif

help Statistická_analýza


ENTER,  Efektní vkládání znaků do vstupních polí

msg "Simulace ručního zadání vstupních dat do tabulky statistiky",Příklad

mode rad,dec,real,data

reset

open MainForm,TopRight       'umístění hlavního okna

open ExprForm,BottomRight    'umístění okna knihovny výrazů

open StatForm,TopLeft        'umístění okna statistiky

open MainFOrm, Active        'aktivace okna statistiky

enter 12,3456789             'vložení numerických hodnot do pole Výraz

enter 358,264578

enter 14,56789

enter 0,4578912

enter 18,7568197

enter 456,254789

enter 86,21456

enter 89,23465879

enter 45,78912345

enter 2,457899

keybd StatForm,Alt+A         'provedení výpočtu statistické analýzy

if msg "Chcete uložit vstupní data?",conf = 6 then

  open StatForm,Active

  keybd Ctrl+S

endif

if msg ("Chcete uložit statistiku?",conf)=6 then

  open StatForm,Active

  keybd Shift+Ctrl+S

endif

help Statistická_analýza      'zobrazení nápovědy k tématu Statistická analýza


HELP,  Vyvolání tématu nápovědy EMcalc

msg "Vygenerování série 50-ti náhodných čísel v rozsahu 0..1000, provedení statistické analýzy nad vygenerovanými daty",Příklad

mode rad,dec,real

reset

open MainForm,TopRight              'umístění hlavního okna

open ExprForm,BottomRight           'umístění okna knihovny výrazů

open StatForm,TopLeft               'umístění okna statistiky

for x=1 to 50

  Data Random(1000)                 'vložení vstupních dat do formuláře statistické analýzy

next

keybd StatForm,Alt+A                'provedení výpočtu statistické analýzy

if msg "Chcete uložit vstupní data?",conf = 6 then

  keybd StatForm,Ctrl+S    'uložení vstupní datové řady

endif

if msg ("Chcete uložit statistiku?",conf)=6 then

  keybd StatForm,Shift+Ctrl+S           'uložení statistických dat do souboru

endif

help Statistická_analýza


MSG,  Formátovaná zpráva pomocí dialogového okna

mode cplx,imag=j    'režim komplexních proměnných, imaginární jednotka = j

c=225+12j

:start

  msg "Hodnota proměnné  c = %1.3g+%1.3gj",info;re(c),abs(im(c))

  msg "Varovná zpráva", mtWarning

  msg "Zpráva o chybě", mtError

  msg "Zpráva o počasí", mtInformation

  if msg "Přejete si pokračovat v programu",Conf=6 then goto start

end


RESET, CLEAR,  Provedení funkce Reset, vynulování proměnných

reset        'provede Reset

clear        'vynuluje všechny proměnné


MODE,  Nastavení režimu výpočtu

mode rad,dec,real,norm    'inicializuje režim výpočtů


PAUSE,  Nastavení bodu přerušení pro ladění

reset                     'provede Reset

mode rad,dec,real         'inicializuje režim výpočtů

open EdForm,0,0,150,300   'připraví velikost a polohu okna EdForm

cls                       'vymaže obsah výstupního okna EdForm

x=0

for a=1 to 3              'hlavička cyklu for...next

  for b=1 to 4            'hlavička vnořeného cyklu for...next

    c=a*b

    if c=4 then pause     'podmíněné pozastavení běhu při ladění

    X=X+1

    print a,b,x           'vypíše hodnoty a,b,x do okna EdForm

    if X=5 then

      x=0

      break               'přeruší iterační cyklus for...next

    endif                 'ukončuje podmíněný blok příkazů

  next                    'konec vnitřní smyčky cyklu for..next

next                      'konec vnější smyčky cyklu for..next

msg "hotovo"              'zobrazí zprávu o ukončení úlohy


BEGIN, END,  Začátek a konec těla hlavního programu

reset                          'provede Reset

mode rad,dec,real,norm         'inicializuje režim výpočtů

def integral(fx,a,b)           'začátek definice uživatelské funkce

  dx=(b-a)/10000

  @1=x

  #1=a..b:dx

  @2=integral

  #2=0:ans

  fx*dx

enddef                         'konec definice uživatelské funkce

begin                          'začátek hlavního programu

  call integral("sin(x)";0;pi) 'volání uživattelské funkce

  gosub zobrazit               'volání podprogramu

end                            'konec hlavního programu

sub zobrazit                   'hlavička podprogramu

  msg "Integrál = %g",info; integral

return                         'konec podprogramu


Příklad IF..THEN..ELSE

reset                   'provede Reset

mode rad,dec,real,norm  'inicializuje režim výpočtů

a=1

b=0

if a>0 then             'podmíněný blok příkazů

 b=b+1

  if b>10 then          'vnořený podmíněný blok příkazů

    d=2

  else

    e=3

  endif                 'konec vnitřního bloku příkazů

  c=3

else

  d=4

  e=5

endif                   'konec vnějšího bloku příkazů

end                     'konec úlohy